Модель Django, целые числа в качестве вариантов
Подскажите, пожалуйста, корректен ли следующий код? Я хочу создать выпадающий список, который в админке django будет показывать выпадающий список с выбором целого числа:
class Test(TimeStampedModel):
"""
Test specifications
"""
TIME_INTERVALS = Choices(
('SECONDS_30', 30)
('SECONDS_60', 60)
('SECONDS_90', 90)
('SECONDS_120', 120)
('SECONDS_150', 150)
('SECONDS_300', 300)
)
sample_time = models.PositiveSmallIntegerField(choices=TIME_INTERVALS, default=TIME_INTERVALS.SECONDS_30)
Спасибо
Шаблон:
# list of tuples:
INTEGER_CHOICES = (
<int>, <string>,
...
)
Где <int>
- значение, хранящееся в БД, а <string>
- то, что отображается пользователям в выпадающем меню
Типичный случай использования выглядит следующим образом:
models.py
SECONDS_30 = 30
SECONDS_90 = 90
...
TIME_INTERVALS = (
SECONDS_30, "30 Seconds",
SECONDS_90, "90 Seconds",
...
)
class Test(...):
sample_time = models.PositiveSmallIntegerField(choices=TIME_INTERVALS, ...)
...
Тогда в ваших представлениях:
views.py
from . import models
# update sample time:
test_instance = models.Test.objects.get(...)
test_instance.sample_time = models.SECONDS_30
test_instance.save()
...