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

Ben*_*Ben 24 python django

我想在select小部件中将字段限制为值0-10.

field=models.IntegerField(max_length=10, choices=CHOICES)
Run Code Online (Sandbox Code Playgroud)

我可以写出从(0,0),(1,1)开始的所有选择元组,但必须有一个明显的方法来处理它.

非常感谢帮助.

Tor*_*cht 36

使用Python列表理解:

CHOICES = [(i,i) for i in range(11)]
Run Code Online (Sandbox Code Playgroud)

这将导致:

[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10,10)]
Run Code Online (Sandbox Code Playgroud)

  • 范围(11)将获得0-10.尽管如此 (5认同)

Pab*_*uiz 6

除了@Torsten 提到的,您还可以通过以下方式改进它:

field = models.IntegerField(choices=list(zip(range(1, 10), range(1, 10))), unique=True)
Run Code Online (Sandbox Code Playgroud)

但请记住,这会给你从 1 到 9。如果你想把范围 (1,11) 放到 10