带有部分编号的默认过滤器

Default filter with partial number

在树视图中,我有字段 "code",我只想过滤代码以 910 开头的记录,它应该是默认过滤器。 我试图玩弄上下文,但并不多。我可以按代码过滤,但我怎样才能在其中添加这个 910。

<field name="context">{"search_default_code":1}</field>

更新。

<record id="project_proposal_view_search" model="ir.ui.view">
    <field name="name">project.part.search</field>
    <field name="model">project.proposal</field>
    <field name="arch" type="xml">
        <search>
            <field name="name"/>
            <field name="project_id"/>
            <field name="code"/>
            <filter name="code" string="Starts with 910" domain="[('code','ilike', '910')]"/>
        </search>
    </field>
</record>

class ProjectProposal(models.Model):
    _name = 'project.proposal'
    _inherit = ['mail.thread']

    code = fields.Char(compute='_compute_code')

 @api.multi
    @api.onchange('project_id', 'object', 'stage_id', 'part_template_id')
    def _compute_code(self):
        for r in self:
            code = []
            if r.project_id:
                code.append(r.project_id.code or '')
            if r.object:
                code.append(r.object or '')
            if r.stage_id:
                code.append(r.stage_id.code or '')
            if r.part_template_id:
               code.append(r.part_template_id.code or '')
            r.code = '-'.join(code)

您必须告知我们有关代码字段类型的信息。它似乎是 char.also 类型,您似乎正在使用具有上下文的操作。

所以你必须定义过滤器 code 你正在尝试使用 {"search_default_code":1}

<filter name="code" string="starts with 910" domain="[('code','ilike', '910')]" />

所以你最终会定义类似的东西

<!-- FILTERS FOR YOUR MODEL -->
<record id="filter_model_name" model="ir.ui.view">
    <field name="name">FILTER NAME</field>
    <field name="model">MODEL.NAME</field>
    <field name="arch" type="xml">
        <search string="MODEL NAME">
            <filter name="code" string="starts with 910" domain="[('code','ilike', '910')]" />
        </search>
    </field>
</record>
<!-- FILTERS FOR YOUR MODEL -->

请确保您的字段定义类似于

code = fields.Char(compute='_compute_code', store=True)