【问题标题】:How do I make a field that has a hierarchy, such as the product category field of the product model?如何制作具有层次结构的字段,例如产品模型的产品类别字段?
【发布时间】:2022-08-20 23:44:48
【问题描述】:

我想创建一个具有多个专业类别(父元素)的字段,最后会出现与该类别对应的专业,如产品模型的产品类别字段中。

我怎样才能做到这一点?

  • 简单的解决方案:喜欢产品类别? ;-) 最后它是一个新模型,其中包含父子关系。这种关系由其自身的 many2one 字段实现,通常命名为parent_id

标签: odoo


【解决方案1】:

您可以定义一个显示父类别名称的计算字段并将其设置为_rec_name,以让Odoo 在Many2one 字段中将其用作display name

例子:

class ProfessionCategory(models.Model):
    _name = "profession.category"
    _description = "Profession Category"
    _rec_name = 'complete_name'


    name = fields.Char('Name', index=True, required=True)
    complete_name = fields.Char(
        'Complete Name', compute='_compute_complete_name', recursive=True,
        store=True)
    parent_id = fields.Many2one('profession.category', 'Parent Category', index=True, ondelete='cascade')

    @api.depends('name', 'parent_id.complete_name')
    def _compute_complete_name(self):
        for category in self:
            if category.parent_id:
                category.complete_name = '%s / %s' % (category.parent_id.complete_name, category.name)
            else:
                category.complete_name = category.name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 2020-10-20
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多