擅长:python、mysql、java
<p>来自奥多<a href="https://www.odoo.com/documentation/13.0/reference/orm.html#relational-fields" rel="nofollow noreferrer">documentation</a></p>
<blockquote>
<p>domain – an optional domain to set on candidate values on the client
side (domain or string)</p>
</blockquote>
<p>所以,基本上您可以将<code>domain</code>设置为字符串或元组列表,在这种情况下,您可以使用字符串来设置如下域</p>
<pre><code>father_code = fields.Many2one('asc.dog', string="Fathers code",
domain ="[('gender', '=', 'male'), ('city', '=', city)]")
</code></pre>
<p>因此,它将从客户端或视图获取城市值,并相应地过滤<code>asc.dog</code>记录。当然,要从客户端获取值,<code>city</code>字段必须存在于视图中,否则它将生成错误<code>field not found in the view</code></p>
<p>或者,您也可以在视图定义中设置域,而不是在字段定义中设置<code>domain</code></p>
<pre><code><field name='city' />
<field name='father_code' domain="[('gender','=','male'),('city','=',city)]" />
</code></pre>
<p>唯一的区别是,如果在字段定义中执行此操作,则由<code>father_code</code>组成的每个视图将始终自动设置此域,但必须包括<code>city</code>,可见或不可见</p>