Django 比较模板中的选择值

Django 比较模板中的选择值,django,Django,我找不到这个问题的答案 我有一个模型 具有字段status=models.ForeignKey(status,default='1') 然后我有班级状态: class Status(models.Model): STATUSES = ( ('1', 'ONE'), ('2', 'TWO'), ('3', 'THREE'), ) name = models.CharField(max_length=1, choices=STA

我找不到这个问题的答案

我有一个模型 具有字段
status=models.ForeignKey(status,default='1')
然后我有班级状态:

class Status(models.Model):
    STATUSES = (
        ('1', 'ONE'),
        ('2', 'TWO'),
        ('3', 'THREE'),
    )
    name = models.CharField(max_length=1, choices=STATUSES, unique=True)
现在,在模板中,我想比较状态选择是否为“一”:

{% for test in foo.test_set.all %}
    {% if test.get_status_display == 'ONE' %}
此条件不起作用,但如果我在循环中打印status的值,它将打印“ONE”:

{{ test.get_status_display }} #prints 'ONE'

真的?使用这里的代码,您需要打印
test.get\u name\u display
。获得结果的唯一方法是
status.get\u name\u display
——我在任何地方都看不到?从测试中,您需要
test.status.get_name_display
;或者更实际地说,为了使代码更灵活,请使用数据库值而不是显示等效值:
{%if test.status.name==“1”%}
谢谢各位,我的体重超标了,我忘了像你们建议的那样调用name属性。