У меня есть много классов с одинаковым полем с именем state
, которое равно CharField
с вариантами. И все эти классы наследуются от одного абстрактного класса. Я решил поставить выбор переменных для этого абстрактного класса:Django. Почему я не могу передать параметр из класса абстрактной модели в дочернюю модель?
class UsefullAbstractClass(models.Model):
NEW = 'new'
ACTUAL = 'actual'
DELETE = 'delete'
STATE_CHOICES = (
(NEW, 'new'),
(ACTUAL, 'actual'),
(DELETE, 'delete'))
class Meta:
abstract = True
Вот мой класс ребенок:
ChildClass(UsefullAbstractClass):
state = models.CharField(
max_length=100,
choices=STATE_CHOICES)
И я получил
имя 'STATE_CHOICES' не определен
Затем я использую manage.py shell
для проверки этой переменной. И все дочерние классные объекты имеют эту переменную
>>> c = ChildClass.objects.all()
>>> c[0].STATE_CHOICES
(('new', 'new'), ('actual', 'actual'), ('delete', 'delete'))
Как решить эту проблему?
вы можете определить состояние поля в 'UsefullAbstractClass' вместо' ChildClass' – Pavan
@Pavan да я могу, но в некоторых других моделях я разные для государства всячески манипулировать, и хотите просто переопределить эту переменную. И я хочу понять, почему этот наследователь не работает в поле, но я вижу эту переменную во всех экземплярах этого класса. –