Использование IntegerChoices в мета-классе модели
Я создаю некоторые ограничения в своем классе Meta
, которые ссылаются на перечисление IntegerChoices
. Проблема заключается в том, что я не могу понять, как ссылаться на это IntegerChoices
перечисление.
class MyModel(models.Model):
States = models.IntegerChoices('States', 'PROGRESSING INSTALLED DELETED')
state = models.PositiveSmallIntegerField(choices=States.choices, help_text='Defines the cluster\'s current state')
class Meta:
constraints = [
models.CheckConstraint(check=models.Q(state__in=States), name='cluster_state_valid'),
]
self.States
не работает, нет объекта self
. MyModel.States
тоже не работает, так как MyModel
не полностью инстанцирован в данный момент.
Любой совет/рекомендация будет оценен по достоинству, спасибо!
Я бы посоветовал определить перечисление вне MyModel
, так, чтобы оно интерпретировалось первым, так:
States = models.IntegerChoices('States', 'PROGRESSING INSTALLED DELETED')
class MyModel(models.Model):
States = States
state = models.PositiveSmallIntegerField(choices=States.choices, help_text='Defines the cluster\'s current state')
class Meta:
constraints = [
models.CheckConstraint(check=models.Q(state__in=States.values), name='cluster_state_valid'),
]