Как установить значения по умолчанию в поле массива Django?

Я хотел бы узнать, как установить значения по умолчанию в модели поля массива Django.

У меня есть модель TextChoices с именем "GameType" :

 class GameType(models.TextChoices):
    '''
    Enumeration of all different game types
    '''
    EVIL = 'evil', 'evil'
    SOLOCOOP = 'solo', 'solo'
    MULTI = 'multi', 'multi'

В моей модели элемента я могу выбрать, в каком режиме доступен мой элемент. Затем у меня есть эти строки :

      game_types = ArrayField(
        models.CharField(
            default=GameType.SOLOCOOP,
            max_length=40,
            choices=GameType.choices
        ), default=default_item_game_types, null=False, blank=False)

Две вещи :

  1. The first default key "GameType.SOLOCOOP" doesn't work
  2. The default list doesn't work too

Вот моя функция "default_item_game_types" :

def default_item_game_types():
    '''Default callable to avoid errors
    '''
    return list(GameType)

А в моей CMS у меня нет значений по умолчанию :

Скриншот моего поля Типы игр

Я пробовал много вещей и искал много решений, но ничего не подошло в моем случае.

Есть ли какой-нибудь ответ, чтобы решить мои проблемы?

Спасибо за ваше время

Приветствую,

Стивен

1: Вы должны установить его как

self.SOLOCOOP = 'solo'

Можно сделать это в пользовательском методе или init, если вы знаете значения по умолчанию для него, это будет намного проще, чем вызывать пользовательский метод.

2:Значения по умолчанию основаны на поле Charfield, поскольку оно в некотором смысле является массивом полей.

ОТРЕДАКТИРОВАНО:

Просто выполните str_value или лучше просто выполните значение ключа для solar, поскольку вы уже используете его в качестве вариантов в параметре ниже.

Вернуться на верх