根据文档:
现场选择
本身由恰好两个项目(例如[[(A,B),(A,B)…])的可迭代对象组成的可迭代对象(例如列表或元组),用作该字段的选择。如果提供了此选项,则默认表单窗口小部件将是具有这些选择的选择框,而不是标准文本字段。
每个元组中的第一个元素是要存储的实际值,第二个元素是人类可读的名称。
所以,你的代码是正确的,但您应该定义变量JANUARY
,FEBRUARY
等,或使用calendar
模块定义MONTH_CHOICES
:
import calendar
...
class MyModel(models.Model):
...
MONTH_CHOICES = [(str(i), calendar.month_name[i]) for i in range(1,13)]
month = models.CharField(max_length=9, choices=MONTH_CHOICES, default='1')