0

我有一个看法login()

from django.http import HttpRequest
from useraccounts.models import BadIP
def login(request):
    client_address = request.META['REMOTE_ADDR']
    client_instance = BadIP.objects.get(ip_address=client_address)
    if client_instance.ban_state == True:
        return render(request, 'login.html', {'banned':True})
    else:
        return render(request, 'login.html', {'banned':False})

还有一个模板:

{% if banned == False %}
  <p>Content</p>
{% endif %}

{% if banned == True %}
  <p>Content #2</p>
{% endif %}

在这些标准下,这两个段落都不会在模板中呈现。但是,如果我将代码中的实例更改TrueFalse字符串,则模板会突然呈现正常。为什么会发生这种情况,有没有办法改变这种行为更明显/语义正确?

4

1 回答 1

1

它们已经是布尔变量了!无需与他们比较TrueFalse. 试试这个:

{% if banned %}
    <p>Content</p>
{% else %}
    <p>Content #2</p>
{% end if %}
于 2012-07-13T01:17:32.530 回答