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 %}

これらの標準では、2 つの段落のどちらもテンプレートに表示されません。ただし、コード内のインスタンス whereTrueおよびFalseappear を文字列に変更すると、突然、テンプレートが正常にレンダリングされます。なぜこれが起こるのですか?この動作をより明白/意味的に正しいものに変更する方法はありますか?

4

1 に答える 1

1

それらはすでにブール変数です!それらと比較する必要はありませTrueFalse。これを試して:

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