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

unable to get display value of choice field using object.get_FOO_display in template

这是我的模型的样子:

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 %}

我期待它显示 "Monday" 或 "Tuesday" 等而不是 0 或 1。但它显示 0 或 1。

查看 https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display 上的文档,它看起来是应该的,但实际上不是。

我在这里错过了什么?

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