Пишу такую вот штуку, есть xml описание предметной области:
<db> <obj name=«manufacturers» caption=«Изготовитель» captions=«Изготовители»> <field name=«id» caption=«ID» type=«Integer» pk='True'/> <field name=«name» caption=«Имя» required=«True» type=«Unicode»/> <!-- <relationship name=«helmets» obj=«helmets» field=«manufacturer»/> --> </obj>
<obj name=«helmet_types» caption=«Тип шлема» captions=«Типы шлемов»> <field name=«id» caption=«ID» type=«Integer» pk='True'/> <field name=«typ_name» caption=«Имя типа» type=«Unicode»/> <!-- <relationship name=«helmets» obj=«helmets» field=«helmet_type»/> --> </obj>
<obj name=«helmets» caption=«Шлем» captions=«Шлемы»> <field name=«id» caption=«ID» type=«Integer» pk='True'/> <field name=«name» caption=«Имя» type=«Unicode»/> <field name=«helmet_type_id» caption=«Тип шлема» type=«Integer» fk=«helmet_types.id» display=«typ_name»/> <field name=«manufacturer_id» caption=«Производитель» type=«Integer» fk=«manufacturers.id» display=«name»/> </obj>
</db>
Есть библиотека с классом XMLMetadataStorage Он кушает это описание и возвращает классы helmets, helmet_types,manufacturers...
От них можно наследоваться. Его наследник XMLMetaSQLAlchemyStorage пополняет эти классы ORM создавая mapping и tables.
Есть WSGI адаптеры отображающие списки объектов созданных из этих классов в DHTMLXGrid. Ну и WSGI приложение которое позволяет редактировать, удалять и добавлять объекты в БД.
Одному такое писать тяжко иногда пропадает мотивация, та и тесты всякие я не осиливаю (времени мало).
Поэтому если кому интересно пишите мне на demmsnt(at)gmail.com может будем вместе писать. Там одних типов полей надо создать date, numeric, datetime.
Рабочий проект с работающим WSGI приложением вышлю на поглядеть.