在我的模块中,我想根据当前日期过滤one2many记录。 这是我的xml代码
<application
android:largeHeap="true" >
cur_date是我为获取当前日期而添加的功能字段。
我的问题是视图中没有过滤记录。它也没有显示任何错误消息
答案 0 :(得分:5)
您在XML文件中定义域。 所以这个域名不起作用。
请在.py文件中定义。
例如:
<强>&#39; record_ids&#39;:fields.one2many(&#39;模型名称&#39;&#39; MODEL_ID&#39;&#39;记录&#39;,域= [( &#39; end_date&#39;,&#39;&gt; =&#39;,&#39; cur_date&#39;)])
这里cur_date你需要定义一个显示当前日期的函数字段。
所以请检查一下这可能对你有帮助:)。
答案 1 :(得分:3)
我也遇到了这个问题,解决方案是将域放在 .py 文件中, .xml 域无效。
import_transaction_log_ids = fields.One2many(comodel_name = 'transaction.log','sale_order_id', string = 'Import Transaction Log',domain=[('operation_type','=','import')])
示例operation_type
字段中的位于transaction.log
模型中。
答案 2 :(得分:0)
域包含'字段名''表达''值'。 而不是价值你给了一个字段
<field name="record_ids" domain="[('field', 'expression', value)]">
答案 3 :(得分:0)
您只能传递存储在数据库中的域中的那些字段。 因此,在这种情况下,cur_date不存储在数据库中。 然后你还需要传入域,所以你需要存储来自py的cur_date字段。
答案 4 :(得分:0)
首先,one2many字段不是用于选择目的。我们可以在one2many字段中创建新记录或更新现有记录。所以我们不能将域应用于one2many字段。 例如:sale.order中的sale_order_line字段
此外,one2many字段,functional_fields [** if store = True未指定]不会存储在表格中。
Many2one或Many2Many用于选择记录[以及创建新记录],因此我们可以在这里应用域名,我们可以限制用户选择某种类型的记录
例如:sale.order.line中的Many2one- product_id字段
res.users中的many2many - user_ids字段
所以,为了获得你的任务,尝试many2many并应用域名,然后过滤记录
答案 5 :(得分:0)
在end_date字段中写入域,如下所示:
<field name="record_ids" >
<tree string="records_tree">
<field name="record_id"/>
<field name="record"/>
<field name="start_date"/>
<field name="end_date" domain="[('end_date', '>', cur_date)]"/>
</tree>
</field>
我认为它会对你有帮助..
答案 6 :(得分:0)
在python中添加它: 例如:
xn_cutting_ids = fields.One2many('mrp.bom.line', 'bom_id', 'Cutting Lines', domain=lambda self:[('xn_stage','=','cut')])
使用domain = lambda
,否则在域中使用字符串值时可能会出错。
这里xn_stage
是mrp.bom.line
模型。