Мета-программирование в OpenERP

Вот способ разработки OpenERP

class stock_incoterms(osv.osv):

_name = "stock.incoterms"
_description = "Incoterms"
_columns = {
    'name': fields.char('Name', size=64, required=True),
    'code': fields.char('Code', size=3, required=True),
    'active': fields.boolean('Active'),
}
_defaults = {
    'active': lambda *a: True,
}

stock_incoterms ()
Это типичная модель OpenERP и сопоставлена ​​с именем таблицы stock_incoterms.
Свойство columns определяет столбцы для таблицы Свойство default определяет значение по умолчанию для каждого столбца.

Мои вопросы:

Как реализовать это в Python?
При запуске stock_incoterms () OpenERP будет читать эту модель, генерировать таблицу с этими определенными столбцами.
После этого, предположим, что я создал запись в этой таблице, затем я прошу дать мне модель этого класса, ex
stock_incoterm = stock_incoterms.get (1) (идентификатор записи в дБ)
Теперь я могу получить доступ
stock_incoterm.name
stock_incoterm.code
........

Этот способ определения модели является своего рода мета-программированием, но я не знаю, как написать его на Python.

Может кто-нибудь подсказать мне подробности или некоторые хорошие ссылки о мета программирование на Python?

1
задан Iapilgrim 26 August 2010 в 05:21
поделиться

1 ответ

Книга разработчика OpenERP — лучшее место для начала поиска. Похоже, вы хотите добавить новую таблицу с именем stock_incoterm. Я бы порекомендовал вам создать новый модуль и добавить в него таблицу вместе с экраном и некоторыми пунктами меню для редактирования таблицы. В книге разработчика есть глава о разработке модулей.

После того, как вы все это настроите, ваш код для доступа к полям записи будет выглядеть примерно так:

class stock_incoterms(osv.osv):
    # ...

    def do_something(self, cr, uid, ids):
        for stock_incoterm in self.browse(cr, uid, ids):
            name = stock_incoterm.name

            # ...
2
ответ дан 2 September 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: