我有一个 Abstract 基本模型和 2 个继承模型,我需要强制 related_name 采用特定格式。
class Animal(models.Model):
legs = models.IntegerField(related_name='%(class)s')
habitat = models.ForeignKey(Habitats, related_name='%(class)s')
class DogAnimal(BaseModel):
name = models.CharField(max_length=20, related_name='dog_animal')
class CatAnimal(BaseModel):
name = models.CharField(max_length=20, related_name='cat_animal')
通常,related_name = '%(class)s' 将分别导致 catanimal 和 doganimal。
我需要像这样的下划线值:dog_animal,cat_animal
这是我需要这样做的“原因”-Legacy。这些模型不是用基类组织的——所以最初指定的related_name 是“dog_animal”和“cat_animal”。改变这将是很多工作。