django имеет field.choices
, вы можете использовать его в своей существующей модели.Этот пример взят из django docs https://docs.djangoproject.com/en/2.2/ref/models/fields/
YEAR_IN_SCHOOL_CHOICES = [
('FR', 'Freshman'),
('SO', 'Sophomore'),
('JR', 'Junior'),
('SR', 'Senior'),
]
здесь первое значение для ex 'FR' является значением, которое будет установлено в качестве значения переменной, а второе значение 'Freshman' является читаемым человеком значениемчто вы увидите, так что если вы выберете «Freshman», то переменная будет содержать значение «FR», каждый кортеж представляет выбор, в вашем случае у вас будет только два кортежа.
вот пример для использованияfield.choices из django.db импортировать модели
class Student(models.Model):
FRESHMAN = 'FR'
SOPHOMORE = 'SO'
JUNIOR = 'JR'
SENIOR = 'SR'
YEAR_IN_SCHOOL_CHOICES = [
(FRESHMAN, 'Freshman'),
(SOPHOMORE, 'Sophomore'),
(JUNIOR, 'Junior'),
(SENIOR, 'Senior'),
]
year_in_school = models.CharField(
max_length=2,
choices=YEAR_IN_SCHOOL_CHOICES,
default=FRESHMAN,
)
def is_upperclass(self):
return self.year_in_school in (self.JUNIOR, self.SENIOR)
Проверить django field.choices https://docs.djangoproject.com/en/2.2/ref/models/fields/#django.db.models.Field.choices