首页 > 解决方案 > 模板中的 django 布尔字段

问题描述

我正在尝试在模板上显示一条消息,该消息根据我的模型中的布尔字段而有所不同。

对于我的模型,我有:

Class Example(models.Model):
    completed = models.BooleanField(default=False)

视图.py

def home(request):
    example = Example.objects
    return render(request, 'home.html', {'example': example})

主页.html

{% for x in example.all %}
{% if x.completed %}
    <p>Congratulations!</p>
{% else %}
    <p>Try again!</p>
{% endif %}
{% endfor %}

模板始终显示“再试一次!” 即使通过管理员我已经确保有些是真的,有些是假的。

标签: djangodjango-templates

解决方案


你的views.py应该是这样的

def home(request):
    example = Example.objects.all()
    return render(request, 'home.html', {'example': example})

和 html 应该是

{% for x in example %}
{% if x is True %}
    <p>Congratulations!</p>
{% else %}
    <p>Try again!</p>
{% endif %}
{% endfor %}

推荐阅读