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

Django中继承模型上的覆盖字段选项,django,inheritance,django-models,django-model-field,Django,Inheritance,Django Models,Django Model Field,我发现了类似的问题和答案,但似乎没有一个是完全正确的。我有这样一个抽象的基本模型: 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=Tr

我发现了类似的问题和答案,但似乎没有一个是完全正确的。我有这样一个抽象的基本模型:

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)
但是我希望这个模型的
help\u text
description
字段上是其他的,比如
help\u text='Some other help text'


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

如果这是关于帮助文本的,我建议只覆盖模型表单。但是,您可以使用工厂并返回内部类:

def基本工厂(说明帮助:str=“标准文本”): 类BaseModel(models.Model): timestamp=models.DateTimeField(auto\u now\u add=True) modified=models.DateTimeField(auto\u now=True) description=models.CharField( max_length=512,blank=True,null=True,help\u text=description\u help ) 类元: 抽象=真 返回基模型 类ConcreteModel(基本工厂(“具体帮助”): 字段1=。。。
帮助文本只是一个例子,因此非常感谢您提供概括的答案。我可能做得不正确,但在某些情况下,仅覆盖子类上的字段选项似乎是必要的(例如,Django admin)。这看起来是一个有趣的解决方案。不,这很常见。但我倾向于将基类限制为仅可自定义的字段。很容易混合多种材料。例如,我经常使用
name=models.CharField()
(类别名称、衬衫名称、狗名,由您命名)。但是长度可能会有所不同,所以您可以使用此模式来控制最大长度。是的,完全正确。这基本上就是我正在做的:修改、时间戳、名称和我的特定案例中的描述。因此,为了使其更通用,我只需向
基本工厂添加更多参数
?例如
def base\u工厂(description\u help:str=“help”,name\u default:str=“name”):
等等?是的,没错。如果你有5个以上的参数,你可能想把一个或多个字段分开,但这只是一个经验法则,不是什么黄金标准。请明白,一个工厂中包含的参数越多,它被广泛重用的机会就越小。再次感谢您在这方面的帮助。我最终使用了
ModelForm
help\u text
属性作为帮助文本,但模型工厂的这种想法在其他地方确实对我有所帮助。干杯