Django IntegerField 带选项(如何创建 0-10 整数选项)

33 投票
2 回答
26956 浏览
提问于 2025-04-16 19:17

我想在一个选择框里限制用户只能选择0到10之间的值。

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

我可以把所有的选择都写出来,比如从(0,0),(1,1)开始,但肯定有更简单的方法来处理这个问题。

非常感谢大家的帮助。

2 个回答

7

正如@Torsten提到的,你可以通过以下方式来改进它:

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

但记住,这样做会给你从1到9的数字。如果你想要到10的话,可以把范围改成(1,11)。

48

使用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)]

撰写回答