Odoo 14: Доменный фильтр в поле One2many второй аргумент для Function.prototype.apply должен быть массивом

#python #python-3.x #odoo #odoo-14

#python #python-3.x #odoo #odoo-14

Вопрос:

У меня был этот код в Odoo 12, и он работает нормально, как только мы перешли на Odoo 14, выдает ошибку при нажатии на поле ролей.

Ошибка кода

 Traceback:
Error: second argument to Function.prototype.apply must be an array
 

Первый вид
Вид

Сообщение об ошибке трассировки стека

роль поля заполняется следующим образом:

Вид:

 <odoo>
  <data>
    <record id="product_pricelist_item_form_inherit" model="ir.ui.view">
      <field name="name">product.pricelist.item.inherit</field>
      <field name="model">product.pricelist.item</field>
      <field name="inherit_id" ref="product.product_pricelist_item_form_view"/>
      <field name="arch" type="xml">

       <xpath expr="//field[@name='product_tmpl_id']" position="attributes">
       <attribute name="string">Roles</attribute>
       <attribute name="domain">"[('is_employee','=', True)]"</attribute>

    </record>
  </data>
</odoo>

 

переменные в модели:

 item_ids = fields.One2many('product.pricelist.item', 'pricelist_id', 'Pricelist Items',copy=True, default=False)
    
is_employee = fields.Boolean(string='Is an Employee', default=True)
 

Есть ли обновления синтаксиса для Odoo 14?

Комментарии:

1. было бы здорово, если бы вы добавили некоторый фрагмент кода в свой вопрос. Нравится, как вы заполняете role поле через python?

2. спасибо за ваш ответ извините, я новичок в размещении вопросов в стеке, добавил фрагмент кода

Ответ №1:

Когда мы применяем домен, используя атрибуты на стороне xml, он должен быть в стиле списка вместо двойных кавычек. Например

 <attribute name="domain">[('is_employee','=', True)]</attribute>
 

И не забудьте закрыть тег xpath . Я не вижу этого в вашем вопросе.