订阅标记保存在哪个表中



我目前正在使用Odoo的数据库来批量导入和导出数据。为此,我也使用标签。例如,我需要批量标记500个订阅。有人知道模型和标记之间的关系保存在哪些表中吗?

我已经找到了:

  • res_partner_res_category_rel

  • sale_subscription_template_tag_rel

我要找的是订阅级别的标签。通过URL我可以看到,我正在查看的模型是";销售.订阅";。因此,我开始寻找一个名为";sale_subscription_tag_relation";但是什么都没有。sale_subscription_template_tag_rel为空,但已标记了订阅。所以不可能是这样。

UI上显示的信息需要存储在某个地方,但我就是找不到哪里。我正在查看的URL:

https://localhost/web#id=CUSTOMER_ID&动作=454&active_id=1779&model=sale.subscription&view_type=form&cids=1&menu_id=329

订阅模型的表格:

sale_subscription
sale_subscription_alert
sale_subscription_alert_sale_subscription_template_rel
sale_subscription_close_reason
sale_subscription_close_reason_wizard
sale_subscription_line
sale_subscription_price_wizard
sale_subscription_snapshot
sale_subscription_stage
sale_subscription_template
sale_subscription_template_tag_rel
sale_subscription_wizard
sale_subscription_wizard_option

如果没有指定关系名称,Odoo将根据表名称(model、comodel(的字母顺序进行计算。

tables = sorted([model._table, comodel._table])
self.relation = '%s_%s_rel' % tuple(tables)

如果在tags字段上设置了关系参数,请检查sale.subscription模型,如果没有,请使用上面的代码进行计算(comodel名称通常是Many2many字段的第一个参数(。

编辑:

例如,事件模块中定义的tag_ids字段没有指定关系。

共模型名称为event.tag,字段在event.type模型中定义,为了获得表名称,我们需要将.替换为_来获得表名称。

在下面的代码中,我们将按升序对模型和comodel表名进行排序,并使用结果使用格式字符串构建关系名(它将按提供的顺序用表名替换%s(

>>> tables = sorted(['event_type', 'event_tag'])
>>> tables
['event_tag', 'event_type']
>>> relation = '%s_%s_rel' % tuple(tables)
>>> relation
'event_tag_event_type_rel'

安装模块后,数据库中应该有一个名为event_tag_event_type_rel的表。

相关内容

  • 没有找到相关文章

最新更新