Как выбрать поле выбора по умолчанию из списка

В модели 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)
Вернуться на верх