Как создать полную запись с делегированием типа наследования?

пример/модели/example.py

class Example(models.Model)
    _name = 'example.model'

    product_tmpl_id = fields.Many2one('product.template','Product Template',delegate=True,ondelete='cascade',required=True)

пример/models/product_template.py

class ProductTemplate(models.Model)
    _inherit='product.template

    example_ids = fields.One2many('example.model','product_tmpl_id',string='Item')

пример/представления/example.xml

<form>
    <field name="product_tmpl_id" widget="many2one"/>
</form>

Насколько я понимаю, запись product_template будет автоматически создана с примером, но это поле является обязательным и не позволяет мне сохранить новую запись. Когда я выполняю импорт example data, добавляя эти столбцы в начале для product_template ("exampleNN", "name", "type", "categ_id/id", "sale_ok", "purchase_ok",...) Я получаю соответствующий шаблон продукта с идентификатором "exampleNN_product_template" и идентичным именем (хотя у примера нет имени, поэтому он должен использовать шаблон продукта).


person jj3666csuf    schedule 04.03.2020    source источник
comment
Когда вы используете делегирование, не используйте Many2one, вместо этого используйте поля шаблона продукта, как будто это одна и та же модель. Вам не нужно вручную создавать связанные поля, у вас есть доступ ко всем полям шаблона, как если бы они были объявлены внутри вашей новой модели.   -  person Charif DZ    schedule 04.03.2020


Ответы (1)


product_tmpl_id не любит находиться в представлении формы, как это требуется, но еще не создан с наследованием делегирования. Вместо этого я использовал представление в виде дерева, чтобы увидеть product_tmpl_id. Мне было любопытно узнать его значение после импорта.

person jj3666csuf    schedule 04.03.2020