Как выбрать поле выбора по умолчанию из списка
В модели django мне нужно установить значение по умолчанию для поля выбора, но я не понимаю, как сделать синтаксическую часть
Это список
CHAT_STYLES = [
("orange", "orange"),
("purple", "purple"),
("aquamarine", "aquamarine"),
("aqua", "aqua"),
("beige", "beige"),
("yellow", "yellow"),
("green", "green"),
("blue", "blue")
]
Я пытался сделать так
chat_styles = models.CharField(max_length=2, choices=CHAT_STYLES, default=CHAT_STYLES."purple")
или
chat_styles = models.CharField(max_length=2, choices=CHAT_STYLES, default=CHAT_STYLES["purple"])
но это не сработало
максимальная длина должна быть 10, потому что aquamarine - самая большая строка и имеет 10 символов. попробуйте это: chat_styles = models.CharField(max_length=10, choices=CHAT_STYLES, default='purple')
Вы можете использовать модель TextChoices для наименования всех вариантов выбора, а затем использовать имя из этих вариантов для установки значения по умолчанию в связанной модели. Здесь максимальная длина установлена на 10, так как самое длинное значение, которое можно вставить в поле (аквамарин), имеет длину 10 символов.
class ChatStyleModel(models.TextChoices):
orange = ("orange", "orange")
purple = ("purple", "purple")
aquamarine = ("aquamarine", "aquamarine")
aqua = ("aqua", "aqua")
beige = ("beige", "beige")
yellow = ("yellow", "yellow")
green = ("green", "green")
blue = ("blue", "blue")
class ChatModel(models.Model):
chat_styles = models.CharField(max_length=10, choices=ChatStyleModel.choices, default=ChatStyleModel.purple)