2012-08-09 47 views
0

我已经在我的模板如下:Django的:模板if语句执行,即使假

<li{% if selected == "al" %} id="selected" {% endif %}><a href="/posting/alerts">Alerts{% if alertnum != 0 %}<span style="color:red">({{alertnum}})</span>{% endif %}</a></li> 

的问题是似乎alertnum != 0。我有以下看法:

def posting_draft(request): 
    user = request.user 
    user_drafts = Draft.objects.filter(user = user) 
    drafts = dict() 
    for d in user_drafts: 
     drafts[d.title] = d.id 
    alertnum = get_alertnum(user) # Returns 0. I have used print statements to verify this 
    return render_to_response('posting_draft.html', {'STATIC_URL':STATIC_URL, 'draft_l' : drafts, 'selected':"dr", alertnum: alertnum}) 

什么在浏览器中显示,当我打开这个,是Alert()空红色括号。括号不应该存在,因为在所有alertnum = 0

回答

4

不知道这是一个错字,但你忘了周围的alertnum报价在您的上下文:

return render_to_response('posting_draft.html', 
    {'STATIC_URL':STATIC_URL, 'draft_l' : drafts, 'selected':"dr", alertnum: alertnum}) 

那么,你是比较0 != 0。它应该是:

return render_to_response('posting_draft.html', 
    {'STATIC_URL':STATIC_URL, 'draft_l' : drafts, 'selected':"dr", 'alertnum': alertnum})