Как использовать Django Field Choices?
Django Field Choices. According to documentation Field Choices are a sequence consisting itself of iterables of exactly two items (e.g. [(A, B), (A, B) …]) to use as choices for some field. For example, consider a field semester which can have options as { 1, 2, 3, 4, 5, 6 } only. Choices limits the input from the user to the particular values specified in models.py. If choices are given, they’re enforced by model validation and the default form widget will be a select box with these choices instead of the standard text field. Choices can be any sequence object – not necessarily a list or tuple.
Первый элемент в каждом кортеже - это фактическое значение, которое должно быть установлено в модели, а второй элемент - это удобочитаемое имя.
Например,
SEMESTER_CHOICES = (
(«1», «1»),
(«2», «2»),
(«3», «3»),
(«4», «4»),
(«5», «5»),
(«6», «6»),
(«7», «7»),
(«8», «8»),
)
Let us create a choices field with above semester in our django project named geeksforgeeks.
from django.db import models # specifying choices SEMESTER_CHOICES = ( ("1", "1"), ("2", "2"), ("3", "3"), ("4", "4"), ("5", "5"), ("6", "6"), ("7", "7"), ("8", "8"),) # declaring a Student Model class Student(models.Model): semester = models.CharField( max_length = 20, choices = SEMESTER_CHOICES, default = "1" ) |
Давайте проверим в админке, как создается семестр. 
Можно также собрать доступные варианты в именованные группы, которые можно использовать в организационных целях:
MEDIA_CHOICES = [
('Аудио', (
('винил', 'винил'),
('cd', 'CD'),
)
),
('Видео', (
('VHS', 'Видеокассета'),
('dvd', 'DVD'),
)
),
('Неизвестно Неизвестно'),
]
The first element in each tuple is the name to apply to the group. The second element is an iterable of 2-tuples, with each 2-tuple containing a value and a human-readable name for an option. Grouped options may be combined with ungrouped options within a single list (such as the unknown option in this example).
For each model field that has choices set, Django will add a method to retrieve the human-readable name for the field’s current value. See get_FOO_display() in the database API documentation.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.