• 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>
  • 相关阅读:
    EXCEL启动慢
    存货跌价准备-资产减值损失
    绩效软件交流-ZQDJ
    库存股
    CF788A Functions again dp
    CF788C The Great Mixing BFS+思维
    CF788B Weird journey 欧拉路径+计数
    CF786C Till I Collapse 整体二分+根号分治
    CF922D Robot Vacuum Cleaner 贪心+排序
    CF920C Swap Adjacent Elements 贪心
  • 原文地址:https://www.cnblogs.com/hellojesson/p/10020288.html
Copyright © 2020-2023  润新知