Целочисленное поле Django с параметрами выбора (как создать целочисленные параметры 0-10)

#python #django

#python #django

Вопрос:

Я хочу ограничить поле значениями 0-10 в виджете выбора.

 field=models.IntegerField(max_length=10, choices=CHOICES)
  

Я мог бы просто выписать все кортежи вариантов, начиная с (0,0),(1,1) и далее, но должен быть очевидный способ справиться с этим.

Помощь высоко ценится.

Комментарии:

1. max_length указывает ширину столбца, а не максимальное значение. Вы хотите, чтобы max_length = 2

2. Комментарий о целочисленном поле max_length , в Django 1.1X и 2.X это бесполезно, см. django.db.models. поля. Целочисленное поле

Ответ №1:

Используйте понимание списка Python:

 CHOICES = [(i,i) for i in range(11)]
  

Это приведет к:

 [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10,10)]
  

Комментарии:

1. диапазон (11) даст вам 0-10. 1, тем не менее

Ответ №2:

Также, как упоминал @Torsten, вы могли бы улучшить его с помощью:

 field = models.IntegerField(choices=list(zip(range(1, 10), range(1, 10))), unique=True)
  

Но помните, что это даст вам от 1 до 9. Укажите диапазон (1,11), если хотите, до 10