【问题标题】:Django: Display choice value not showingDjango:显示选择值未显示
【发布时间】:2014-12-03 20:35:14
【问题描述】:

我知道已经有人问过类似的问题,但我很难过。我在 models.py 中有一个月份列表:

MONTH_CHOICES = [
    (1, 'January'),
    (2, 'February'),
    (3, 'March'),
    .....etc.......
]

month = models.CharField(max_length=120, null=False, blank=False)

在forms.py中:

month = ChoiceField(choices=MONTH_CHOICES, required=True)

然后我有一个表格,我想在其中显示(winners.html)月份值,(1 月、2 月等)而不是(1、2、3 ......),我有这个:

{% for w in winners %}
    {{ w.get_month_display }}

现在不显示数字 (1,2,3......,),它什么也不显示。我错过了什么?

【问题讨论】:

    标签: python django dictionary


    【解决方案1】:

    您还没有告诉模型字段使用选项 - 所以 get_month_display 甚至不会被定义。

    另外,我不明白您为什么将字段定义为长度为 120 的 char 字段:它应该是一个整数字段,因为这就是您的值。

    month = models.IntegerField(choices=MONTH_CHOICES, null=False, blank=False)
    

    【讨论】:

      【解决方案2】:

      您在表单字段中设置了choices,但尝试从模型字段中获取它。为什么不使用模型表单https://docs.djangoproject.com/en/dev/topics/forms/modelforms/

      【讨论】: