在 Django 中覆盖继承模型的字段选项

Override Field Option on Inherited Model in Django

我找到了类似的问题和答案,但 none 似乎完全正确。我有一个像这样的抽象基础模型:

class BaseModel(models.Model):
    timestamp = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    description = models.CharField(max_length=512, blank=True, null=True, help_text='Help')

    class Meta:
        abstract = True

然后我继承了它:

class AnotherModel(BaseModel):
    field1 = models.CharField(max_length=512)

但我希望 description 字段中此模型的 help_text 是其他内容,例如 help_text='Some other help text'

最好的方法是什么?我可以覆盖继承模型字段的选项吗?

如果这真的是关于帮助文本,我建议只覆盖 ModelForm。但是,您可以使用工厂和 return 内部 class:

def base_factory(description_help: str = "Standard text"):
    class BaseModel(models.Model):
        timestamp = models.DateTimeField(auto_now_add=True)
        modified = models.DateTimeField(auto_now=True)
        description = models.CharField(
            max_length=512, blank=True, null=True, help_text=description_help
        )

        class Meta:
            abstract = True

    return BaseModel


class ConcreteModel(base_factory("Concrete help")):
    field1 = ...