odoo Наследование шаблона продукта с использованием делегирования, необходимо изменить значение по умолчанию для category_id в форме - PullRequest
0 голосов
/ 06 марта 2020

Наследование по шаблону продукта делегирования. В виде формы я размещаю поле category_id . По умолчанию используется значение «Все», и я хотел бы, чтобы он по умолчанию указывал на другую категорию. Я пробовал следующее:

<field name="categ_id" domain="[('name', '=', 'Paper')]"/>

, который успешно фильтрует выпадающий список только по той категории, которую я хочу, но «Все» по-прежнему отображается по умолчанию.

Затем я попытался поместить контекст в действие окна и поле с такими вариациями, как

context="{'default_categ_id':%(pse.product_category_materials_paper)d}"
context="{'default_categ_id':'Paper'}"
context="{'default_categ_name':'Paper'}"

В поле category_id definition, default = _get_default_category_id - это проблема отладчика. В обход следующей строки

return self._context.get('categ_id') or self._context.get('default_categ_id')

Книга говорит, что доступ к унаследованной модели не доступен в новой модели? Поэтому я также попытался переопределить функцию, и она не работала (возможно ли это, поскольку это делегирование?)

Любые указатели были бы полезны. Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

После нескольких дополнительных исследований работает обновление метода default_get.

@api.model
def default_get(self, vals):
   res = super(Paper, self).default_get(vals)
   categories = self.env['product.category'].search([('name', '=', 'Paper')])
   if categories:
       res.update({'categ_id': categories[0].id})
   return res

Тем не менее, по-прежнему требуется проверка ошибок, если бумага не существует. Вернем его обратно к шаблону продукта «Все» по умолчанию.

0 голосов
/ 06 марта 2020

Обратите внимание, что в поле категорий ID есть функция по умолчанию, работающая в базе. Вы можете изменить

categ_id = fields.Many2one(
    'product.category', 'Internal Category',
    change_default=True, default=_get_default_category_custom,
    required=True, help="Select category for the current product")

. Пожалуйста, напишите функцию _get_default_category_custom, используя sh. То есть назначить категорию как бумагу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...