2012-07-13 39 views
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顯示爲字符串的代碼中的實例,突然模板呈現良好。爲什麼會發生這種情況,並且有什麼方法可以將此行爲更改爲更明顯/更正確的語義?

回答

1

它們已經是布爾變量了!無需與他們比較TrueFalse。試試這個:

{% if banned %} 
    <p>Content</p> 
{% else %} 
    <p>Content #2</p> 
{% end if %}