Boris_1c писал(а) 07. Июня 2012 :: 09:54:По справочникам ещё многоуровневость, подчиненность.. Сложно реализуется? В papp классе справочника ссылка на себя же добавляется, где-то надо указать что он иерархический.. затем catalog надо править?
И журналы например, они ж мало чем отличаются от справочников, от чего наследоваться будут? Может есть записки по структуре, для облегчения ковыряния в коде?
papp - модуль с "конфигурацией". catalog == справочник.
Файл: orm/models.py
class Model(metaclass = ModelMeta):
"""Base class for all tables. Class attributes - the fields.
Instance attributes - the values for the corresponding table fields.
"""
# default fields
id = orm.IdField() # row id. This field is present in all tables
timestamp = orm.DateTimeField() # version of the record - datetime (with milliseconds) of the last update of this record
Т.е. каждая модель по умолчанию имеет два поля (колонки в базе данных): id, timestamp
Файл: wic/forms/catalog/w_catalog_view_model.py:
class CatalogModel(orm.Model):
"""Base model for all catalogs.
"""
deleted = orm.BooleanField()
CatalogModel (модель справочника) является подклассом абстрактной модели, у к-й добавлено поле deleted (удалена ли запись).
Чтобы сделать иерархию, по идее надо добавить еще поле parent:
class CatalogModel(orm.Model):
"""Base model for all catalogs.
"""
parent = orm.orm.RecordField('CatalogModel', index = True)
deleted = orm.BooleanField()
'CatalogModel' указано в кавычках, потому что в момент создания класса имени CatalogModel еще не существует. Если передается строка, она трактуется как путь к модели. Если нет точек - значит это имя модели в текущем модуле. В Джанго, по-моему, тоже так:
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkeyПосле добавления поля parent к модели, надо изменить вьюшку в том же файле (WCatalogViewModel). Для этого надо почитать:
http://qt-project.org/doc/qt-4.8/QAbstractTableModel.html