Как установить значения по умолчанию в поле массива 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)
Две вещи :
- The first default key "GameType.SOLOCOOP" doesn't work
- 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, поскольку вы уже используете его в качестве вариантов в параметре ниже.