Odoo 循环遍历订阅行然后将值设置为字段
Odoo loop through a subscription line then set value to field
大家好,我是 python 和 Odoo 开发的新手,我之前使用 Web 界面进行自定义。我试图创建一个 class 到
- 向 sale.subscription 模型添加一个字段
subscription_tier = fields.Char(string='Subscription Tier',readonly=True)
哪个有效,但第二部分无效
2. 遍历订阅行以查看客户是否有 silver
或 gold
订阅
然后将其设置为字段 subscription_tier
class subscription_tire_set(models.Model):
_inherit = 'sale.subscription'
subscription_tier = fields.Char(string='Subscription Tier',readonly=True)
@api.depends('recurring_invoice_line_ids.product_id')
def _compute_release_to_pay(self):
for n_subscription in self:
result = None
for n_subscription_line in n_subscription.recurring_invoice_line_ids:
if any(n_subscription_line.product_id) == 'gold':
result = 'gold'
break
else:
result = 'not'
subscription_tier = result
我可能做错了什么可怕的事情
尝试在订阅中打开任何客户时也会收到此信息
出了点问题!
sale.subscription(10,).subscription_tier
提前感谢您的帮助。
对我有用的:
result = None
for n_subscription_line in n_subscription.recurring_invoice_line_ids:
if n_subscription_line.product_id.name == 'gold'
result = 'gold'
# break
else:
result
n_subscription.subscription_tier = result
它不起作用,因为在最后一行中您声明了一个名为 subscription_tier
的变量并将其值设置为 result
,您应该将 result
分配给 subscription_tier
n_subscription
记录的字段:
@api.depends('recurring_invoice_line_ids.product_id')
def _compute_release_to_pay(self):
for n_subscription in self:
# Your code
n_subscription.subscription_tier = result
编辑:
any 将 return True
或 False
并且您的表达式 any(n_subscription_line.product_id) == 'gold'
将始终被评估为 False
大家好,我是 python 和 Odoo 开发的新手,我之前使用 Web 界面进行自定义。我试图创建一个 class 到
- 向 sale.subscription 模型添加一个字段
subscription_tier = fields.Char(string='Subscription Tier',readonly=True)
哪个有效,但第二部分无效
2. 遍历订阅行以查看客户是否有 silver
或 gold
订阅
然后将其设置为字段 subscription_tier
class subscription_tire_set(models.Model):
_inherit = 'sale.subscription'
subscription_tier = fields.Char(string='Subscription Tier',readonly=True)
@api.depends('recurring_invoice_line_ids.product_id')
def _compute_release_to_pay(self):
for n_subscription in self:
result = None
for n_subscription_line in n_subscription.recurring_invoice_line_ids:
if any(n_subscription_line.product_id) == 'gold':
result = 'gold'
break
else:
result = 'not'
subscription_tier = result
我可能做错了什么可怕的事情
尝试在订阅中打开任何客户时也会收到此信息
出了点问题!
sale.subscription(10,).subscription_tier
提前感谢您的帮助。
对我有用的:
result = None
for n_subscription_line in n_subscription.recurring_invoice_line_ids:
if n_subscription_line.product_id.name == 'gold'
result = 'gold'
# break
else:
result
n_subscription.subscription_tier = result
它不起作用,因为在最后一行中您声明了一个名为 subscription_tier
的变量并将其值设置为 result
,您应该将 result
分配给 subscription_tier
n_subscription
记录的字段:
@api.depends('recurring_invoice_line_ids.product_id')
def _compute_release_to_pay(self):
for n_subscription in self:
# Your code
n_subscription.subscription_tier = result
编辑:
any 将 return True
或 False
并且您的表达式 any(n_subscription_line.product_id) == 'gold'
将始终被评估为 False