2017-02-13 5 views
0

У меня есть проблема с этим XML-спецификации (odoo 9):XML One2many контекст по умолчанию в odoo9

the var "groups_ref" is a Many2many relation with res.groups.

<record id="some_id" model="ir.actions.act_window"> 
    .... 
    <field name="context">{'groups_ref': self.env.ref('security.basic_user')}</field> 
    .... 
</record> 

XML Basic User from module security

<record id="basic_user" model="res.groups"> 
    <field name="name">Base User</field> 
     <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> 
    </record> 

, которые дают мне ошибку:

NameError: self is not defined

Мой вопрос в том, как передать значение по умолчанию для отношения One2many, используя этот xml d efinition, я не хочу передавать его в полевую декларацию в py. Благодарю.

+0

Что об использовании 'реф ('security.base_user')'? – CZoellner

ответ

0

в XML, если вы хотите, чтобы определить значение поля, которое необходимо выражение питона вам нужно используйте eval:

предположим, что у вас есть запись в вашей базе данных с xmlid = "record_id", поэтому в файле xml для определения значения поля many2one для этой записи:

<field name="m2o_field_name" ref="record_id"/> 
or 
<field name="m2o_field_name" eval="ref('record_id')"/> 

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

<field name="context" eval="{'default_groups_ref':[(4,ref('security.basic_user'))]}" /> 

note for default value you need to prefix the name fo the field by < default_ >

0

Общий синтаксис для передачи группы в контексте

<field name="context">{'default_groups_ref': ['module_name.register_group_xml_id_1', 'module_name.register_group_xml_id_2',]}</field> 

Try с помощью следующего кода:

<record id="some_id" model="ir.actions.act_window"> 
.... 
    <field name="context">{'default_groups_ref': ['security.basic_user']}</field> 
.... 
</record> 
+0

Ошибка консоли python: 'res = self._obj.execute (query, params)' 'DataError: введенный sintax недействителен для типа int:« security.basic_user »Строка 10: WHERE« res_groups ».id IN ("security.basic_user") ... ' –

+0

Можете ли вы обновить свой вопрос с помощью * basic_user * xml записи. Может возникнуть проблема с созданием записи. –

+0

Можем ли мы использовать ref в поле? Cuz 'эта ошибка связана с тем, что строка «security.basic_user» не является целым числом. Целое число, необходимое для запроса WHERE «res_groups» .id IN («security.basic_user») для работы. Он не может выполнить этот запрос, ему нужно что-то вроде WHERE «res_groups» .id IN (1,2). – Majikat

Смежные вопросы