Django ArrayField - выбор из класса констант - ERROR fields.E005
У меня есть файл с константами, объявленными внутри классов:
class LanguageChoices:
EN = "English"
FR = "French"
@classmethod
def choices(cls):
return (
(cls.EN, _("English")),
(cls.FR, _("French")),
)
А мои модели:
from django.contrib.postgres.fields import ArrayField
from apps.users.constants import LanguageChoices
class Data(models.Model):
language = ArrayField(
models.CharField(
max_length=30, choices=LanguageChoices.choices()),
blank=True, null=True
)
)
Когда я пытаюсь запустить миграции, я сталкиваюсь с этой ошибкой (это происходит даже если я стираю все предыдущие файлы миграции и использую новую базу данных):
SystemCheckError: Проверка системы выявила некоторые проблемы:
ERRORS:
users.Data.language: (postgres.E001) Base field for array has errors:
'choices' must be an iterable containing (actual value, human readable name) tuples. (fields.E005)
ERROR: 1
Есть идеи?
Ну, оказалось, что код хороший, там была маленькая запятая после одного из значений (например, EN = "English",) прямо посередине. VSCode не потянул предупреждения, а мое зрение разыграло меня и скрыло это от меня.