У меня есть много классов в models.py
что-то вроде:Общих app_label для всех моделей в Django
class SomeClass1(BaseModel):
question = models.ForeignKey(Question)
image = models.ForeignKey(Image)
class SomeClass2(BaseModel):
question = models.ForeignKey(Question)
option_text = models.TextField()
Теперь я хочу добавить app_label = 'my_app_label1'
все эти классы, что-то вроде этого:
class SomeClass1(BaseModel):
question = models.ForeignKey(Question)
image = models.ForeignKey(Image)
class Meta:
app_label = 'my_app_label1'
Но поскольку существует много классов, поэтому вместо добавления app_label = 'my_app_label1'
ко всем классам я добавляю app_label = 'my_app_label1'
в BaseModel, например:
class BaseModel(models.Model):
"""
For future abstraction.
"""
class Meta:
app_label = 'ques_app_data'
После чего я получаю эту ошибку:
myapp.SomeClass1.basemodel_ptr: (fields.E300) Field defines a relation with model 'BaseModel', which is either not installed, or is abstract.
Может кто-нибудь объяснить, как решить эту проблему?
Соответствует ли имя вашего приложения имени, которое вы передаете в app_label? – Igor
Нет, это не так, но я хочу дать тот же app_label для моделей в разных приложениях. –
Это должно быть то же самое имя, которое включено в настройки, я думаю. Попробуй это. – Igor