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属性。