跳至內容
選單
此問題已被標幟
3 回覆
6644 瀏覽次數

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
3982
5
8月 19
9348
1
4月 19
5539
1
3月 19
10483
1
1月 24
13537