小编Jam*_*rce的帖子

不能使用继承的Django模型的Meta类来配置继承的抽象模型中定义的字段

我想使用继承模型的Meta类中的属性来配置在继承树之上的抽象模型中定义的字段:

class NamedModel(models.Model):
    class Meta:
        abstract = True
        verbose_name = 'object'

    name = models.CharField("Name",
        max_length=200,
        db_index=True,
        help_text="A meaningful name for this %s." % Meta.verbose_name)
        # see what I'm trying to do here?
    )
    ...

class OwnedModel(NamedModel):
    class Meta(NamedModel.Meta):
        verbose_name = 'owned object'
Run Code Online (Sandbox Code Playgroud)

我希望OwnedModel表单名称字段上的帮助文本说"这个拥有对象的有意义的名称".但事实并非如此:缺少"拥有"这个词,这表明在建立模型时使用NamedModel.Meta中的verbose_name,而不是OwnedModel.Meta.

这不是我对继承观点的期望:是否有某种方法可以创建字段,Meta.verbose_name引用非抽象模型类上的值,而不是字段上的抽象值被定义了吗?

还是我愚蠢?

(这可能看起来像一个微不足道的例子,它是:但它只是为了说明我想要做的更重要和更复杂的事情)

提前谢谢了.

python django inheritance metaclass django-models

6
推荐指数
1
解决办法
5367
查看次数

标签 统计

django ×1

django-models ×1

inheritance ×1

metaclass ×1

python ×1