首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为没有onchange触发器的many2one字段设置动态域?

对于没有onchange触发器的many2one字段,可以通过重写该字段所在模型的write方法来实现动态域的设置。

动态域是指根据某个字段的值来动态改变many2one字段的可选值。在重写write方法时,可以通过判断该字段的值来修改many2one字段的domain属性,从而实现动态域的设置。

以下是一个示例代码:

代码语言:txt
复制
class MyModel(models.Model):
    _name = 'my.model'

    many2one_field = fields.Many2one('other.model', string='Many2one Field')

    @api.model
    def create(self, vals):
        record = super(MyModel, self).create(vals)
        # 在创建记录时,根据某个字段的值设置动态域
        if 'some_field' in vals:
            record.update_many2one_domain(vals['some_field'])
        return record

    def write(self, vals):
        # 在修改记录时,根据某个字段的值设置动态域
        if 'some_field' in vals:
            self.update_many2one_domain(vals['some_field'])
        return super(MyModel, self).write(vals)

    def update_many2one_domain(self, field_value):
        # 根据字段的值设置many2one字段的domain属性
        domain = [('some_field', '=', field_value)]
        self.many2one_field.domain = domain

在上述示例代码中,我们重写了MyModel模型的create和write方法。在创建和修改记录时,通过判断某个字段的值来调用update_many2one_domain方法,该方法根据字段的值设置many2one字段的domain属性。

需要注意的是,上述示例代码中的'other.model'和'some_field'需要根据实际情况进行替换。

这样,当创建或修改记录时,如果某个字段的值发生变化,many2one字段的可选值也会相应地发生变化,实现了动态域的设置。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎 TKE:https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动应用开发平台(Serverless Framework):https://cloud.tencent.com/product/sls
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(TBaaS):https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】

    投诉受理管理模块 接下来,就是来开发我们的投诉受理管理模块了…..我们来看看原型图与需求吧: 查询用户提交的投诉信息,可以根据投诉部门(部门A/B)、投诉时间段、状态进行查询。在列表信息中展示投诉标题、被投诉部门、被投诉人、投诉时间、状态(待受理、已受理、已失效)、操作;其中操作栏内内容为“处理”,点击“处理”则在打开的查询页面中查看具体的投诉信息并且可以多次回复投诉信息;一旦回复则说明已受理该投诉。 投诉详细信息:在本页面中首先要明显地展示出当前投诉是否已经受理;然后再显示投诉人信息、被投诉信息、受理信息

    07
    领券