コンテンツへスキップ
メニュー
この質問にフラグが付けられました
3 返信
6646 ビュー

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
3984
5
8月 19
9350
1
4月 19
5541
1
3月 19
10484
1
1月 24
13538