无法使用模板中的 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.
这是我的模型的样子:
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.