无法使用模板中的object.get_FOO_display获取选择字段的显示值

时间:2018-08-15 15:04:11

标签: django django-models django-templates django-views django-2.0

这是我的模型的样子:

class FacilityHoursOfOperation(models.Model):
    DAYS_OF_WEEK = (
        (0, 'Monday'),
        (1, 'Tuesday'),
        (2, 'Wednesday'),
        (3, 'Thursday'),
        (4, 'Friday'),
        (5, 'Saturday'),
        (6, 'Sunday'),
    )

    day = models.CharField(max_length=1, null=True, choices=DAYS_OF_WEEK, verbose_name="Day")

这是我的看法:

hoursofoperationslist = FacilityHoursOfOperation.objects.filter(some filter)

return render(request, template_name="sometemplate.html",context={'hoursofoperation':hoursofoperationslist})

这是我的模板的样子:

{% for hop in hoursofoperation %}
   <tr>
      <td>{{ hop.get_day_display }}</td>
   </tr>
{% endfor %}

我希望它显示“星期一”或“星期二”等,而不是0或1。但是它显示0或1。

看一下https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display上的文档,看起来应该如此,但事实并非如此。

我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

您正在使用CharField,但是CHOICES中的键是整数。将它们更改为字符串-'0', '1'等-或将字段更改为IntegerField。