繁体   English   中英

在域odoo中使用集合运算符?

[英]Using set operators in domain odoo?

我有一个带有活动(activity_id)和购买(purchase_id)的实体“pay_activity”。 活动有一个账单清单,购买也有一个账单清单。 我想将域应用于活动,因此用户只能 select 购买的账单列表中至少有一个账单的活动。 我努力了:

set (activity_id.bills_ids) & set (purchase_bill_id) != None. 

但我不能将这些运算符应用于域。 有什么办法可以让 select 仅在 purchase_bill_id 列表中至少有一张账单的活动?

class CenterPayActivity(models.Model):

    _name = 'center.pay_activity'
    _description = 'Permite distribuir los pagos entre las actividades'

    activity_id = fields.Many2one('center.activity', string='Actividad', required=True )

    purchase_id = fields.Many2one('center.purchase', related="payment_id.bill_ids")

    purchase_bill_id = fields.Many2many('center.bill', related="purchase_id.bill_ids")


class CenterActivity(models.Model):

    _name = 'center.activity'

    bills_ids = fields.Many2many(comodel_name='center.bill',
                                  delete="cascade",
                                  compute="_compute_bills_ids")

非存储字段center.activity.bills_ids 无法搜索 要在activity_id字段域中使用它,您应该将store属性设置为True或定义search方法。

purchase_id是与 Many2many 字段相关的 Many2one 字段,我认为您应该删除相关属性。

尝试:

  • center.activity.bills_ids存储属性设置为 True。

  • center.pay_activity.purchase_id中删除related attribute

  • 在表单视图中使用以下域:

     domain="[('bills_ids', 'in', purchase_bill_id)]"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM