Использование 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'),
        ]
Вернуться на верх