Я хочу динамически задавать модельное поле в models.py. Например:Как добавить динамическое поле модели?
class ModelA(models.Model):
pass # whatever
# immediately after class declaration in models.py
if django_is_not_non_rel:
MyModel.all_modelb = models.ManyToManyField(ModelB, through="ModelAB")
Но этот пример кода не работает. Когда условие истинно, ModelA не имеет поля all_modelb после того, как все будет инициализировано. Зачем???? Как я могу осуществить свое намерение?
Почему вы хотите сделай это? –
Я попытался сделать мой пример максимально простым. Реальный сценарий заключается в том, что поле динамической модели добавляется только в том случае, если выполняется конкретное условие. В моем случае это поле ManyToManyField, которое не добавляется, если структура Django является NonRel ... У вас есть решение? – jacob
Почему бы вам просто не добавить поле в модель и не добавить к нему отношения, если ваше условие истинно? AFAIK, все экземпляры конкретной модели должны иметь одинаковые поля. (но я не так разбираюсь в Django .. :) –