python - 如何覆盖 Django 中父类(super class)模型字段的详细名称

标签 python django inheritance django-models

假设我有一个继承自 SuperFoo 的模型 Foo:

class SuperFoo(models.Model):
    name = models.CharField('name of SuperFoo instance', max_length=50)
    ...

class Foo(SuperFoo):
    ... # do something that changes verbose_name of name field of SuperFoo

在 Foo 类中,我想覆盖 SuperFoo 的 name 字段的 verbose_name。我可以吗?如果不是,最好的选择是在模型表单定义中设置标签以使其显示在模板中?

最佳答案

我使用的一个简单技巧是:

class SuperFoo(models.Model):
    name = models.CharField('name of SuperFoo instance', max_length=50)
    ...
    class Meta: 
        abstract = True

class Foo(SuperFoo):
    ... # do something that changes verbose_name of name field of SuperFoo
Foo._meta.get_field('name').verbose_name = 'Whatever'

关于python - 如何覆盖 Django 中父类(super class)模型字段的详细名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/927729/

相关文章:

python - Pytorch张量的哪一部分代表 channel ?

python - PyQt --> addItem --> 类型错误 : arguments did not match any overloaded call:

python - 为日期解析文本字符串——不是标准的转换问题!

python - pandas value_counts( ) 不按降序排列

python - Django:向后跟踪关系

django - @detail_route 在 django rest 框架中不起作用

python - 如何将选择显示名称传递给 Django REST 框架中的模型序列化?

java - 有人能帮我解决Java中关于 "super"的问题吗?

c++ - 派生类调用基类对象的方法

python - 使用工厂与常规构造函数的优缺点