Odoo。一对多按字段搜索

时间:2015-11-13 17:07:36

标签: python openerp odoo-9

我在odoo 9中为员工扩展模块。每个员工都有孩子。我的模特在这里:

class Employee(models.Model):
    _name = 'hr.employee'
    _inherit = 'hr.employee'

    children_ids = fields.One2many('my_module', 'employee_id', string="Children")


class Child(models.Model):
    _name = 'my_module'

    name = fields.Char(required=True, string='Name')

    birthday = fields.Date(required=True, string='Birthday')

    employee_id = fields.Many2one('hr.employee', ondelete='cascade', string="Employee")

enter image description here

如何按生日配置搜索?例如,我想设置生日的搜索日期(或日期的间隔),系统必须向我显示所有有搜索生日的孩子的员工。

enter image description here

这是我的搜索视图(按照孩子的名字工作):

<record id="view_urspectr_employee_filter" model="ir.ui.view">
    <field name="name">Employees</field>
    <field name="model">hr.employee</field>
    <field name="inherit_id" ref="hr.view_employee_filter" />
    <field name="arch" type="xml">
        <search position="inside">
            <field name="children_ids"/>
        </search>
    </field>
</record>

我在模块帐户(../ addons / account / views / account_view.xml)中发现了类似的情况:

<record id="view_account_move_filter" model="ir.ui.view">
            <field name="name">account.move.select</field>
            <field name="model">account.move</field>
            <field name="arch" type="xml">
                <search string="Search Move">
                    <field name="name" filter_domain="['|', ('name','ilike',self), ('ref','ilike',self)]" string="Move"/>
                    <field name="date"/>

按日期搜索工作很好。但在这种情况下 date 字段使用时没有关系 One2Many

您能帮忙解决问题吗?我找不到One2Many搜索的例子。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

此解决方案:

<record id="view_urspectr_employee_filter" model="ir.ui.view">
    <field name="name">Employees</field>
    <field name="model">hr.employee</field>
    <field name="inherit_id" ref="hr.view_employee_filter"/>
    <field name="arch" type="xml">
        <search position="inside">
            <field name="children_ids" filter_domain="[('children_ids.birthday', '=', self)]" widget="date"/>
        </search>
    </field>
</record>

答案 1 :(得分:0)

在此尝试添加&#39; hr.employee&#39;生日&#39; 的相关字段。关于&#39; children_ids&#39;的表格,但问题仍然可能是它不能仅仅搜索2015年&#39;因为生日的数据类型&#39;字段是&#39;日期&#39;而不仅仅是简单的字符串。你可以尝试一下。