odoo开发笔记 -- many2one搜索更多增加默认过滤条件

 没加过滤条件的时候,效果如下,点击下拉框,搜索更多出现所有模型下的模板:

改进方法(增加默认过滤条件,显示指定模型下的内容):

class IrCloudReport(models.Model):
    _inherit = 'test.aaa'

    cr_template_no = fields.Char(string="模板号")  # 唯一模板号
    saas_domain_name = fields.Char(string="企业域名")


class DecEXReportTempSelectWizard(models.TransientModel):
    _name = 'test.bbb'
    _description = 'Cloud Report Selection'

    model = fields.Char(string="模型名")
    cr_template_id = fields.Many2one(comodel_name="test.aaa", string="报表模板ID",
                                     copy=False, required=True,
                                     domain=lambda self: [('model', '=', self._context.get('res_model'))],)  # 多对一字段 关联报表模型

即:上方增加domain表达式:domain=lambda self: [('model', '=', self._context.get('res_model'))]

光写表达式还没有用,需要给当前模型cr_template_id字段所在的视图中传入上下文:

<record id="xxxxxxxxxx" model="ir.ui.view">
    <field name="name">cus xxxxxxxx</field>
    <field name="model">test.xxxxxxx</field>
    <field name="inherit_id"
           ref="XXXXXXXXXXXXXXXXX"/>
    <field name="arch" type="xml">
        <xpath expr="//header/button[@id='test.xxxxxxxxxx']" position="after">
            <button name="%(test.xxxxxxxx)d"
                    string="测试"
                    type="action" class="btn-primary"
                    context="{'res_model': '您自己需要过滤的模型名'}"/>
        </xpath>
    </field>
</record>

 

转载于:https://www.cnblogs.com/hellojesson/p/10020288.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值