跳至内容
菜单
此问题已终结
3 回复
6652 查看

Hi,

I have a custom Many2one field defined in the model account.invoice which uses the model account.analytic.account and is using a domain in xml as domain="[('customer', '=', True)]" required="1". The domain field here is from account.invoice so when i execute this code it gives an error as

ValueError: Invalid field 'customer' in leaf "<osv.ExtendedLeaf: ('customer', '=', True) on account_analytic_account (ctx: )>"

The field is defined as follows

class AccountInvoiceInherit(models.Model):
_inherit = 'account.invoice'
company_selection = fields.Many2one('account.analytic.account', string="Company")

In the view, i'm using as follows

<record model="ir.ui.view" id="invoice_form_inherit">
<field name="name">account.invoice.form.inherit.account</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<xpath expr="//form/sheet/group[1]/group[2]" position="replace">
<group>
<field name="company_selection" domain="[('customer', '=', True)]" required="1"/>
</group>
</xpath>
</field>
</record>

Can anyone tell me how to use the domain of another model?


形象
丢弃
编写者 最佳答案

I know it is not the correct way to do it but for the time being i solved the issue by using attrs in xml of the invoice screen and did not use any attrs in bills screen as

<field name="company_selection" attrs="{'required': True}"/>

This essentially makes the field required in invoices and not required in bills, It solved the requirement but not in the right way.

If anyone knows the answer to the question, please do answer it.

Thanks,

Sameer

形象
丢弃
最佳答案

this worked for me

domain="[('customer', '!=', False)]"

形象
丢弃
编写者

I want the field to be required in one screen and not required in another and since the domain and the many2one fields model differ from each other it is throwing me an error and no it didn't work for me

相关帖文 回复 查看 活动
1
1月 21
3987
5
8月 19
9365
1
4月 19
5543
1
3月 19
10489
1
1月 24
13543