one2many的域不工作Odoo

时间:2015-07-22 06:48:22

标签: openerp odoo-8

在我的模块中,我想根据当前日期过滤one2many记录。 这是我的xml代码

<application
     android:largeHeap="true" >

cur_date是我为获取当前日期而添加的功能字段。

我的问题是视图中没有过滤记录。它也没有显示任何错误消息

7 个答案:

答案 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', '&gt;', 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_stagemrp.bom.line模型。