Django模板如果有条件失败

时间:2012-08-22 23:10:20

标签: django templates conditional

我无法理解为什么if条件之间的代码没有显示。没有条件,代码显示正常。

{% if current_user_is_not_crew %}
<p>
<form action="/commit/" method="post" id="event-commit">
<input type="hidden" name="event_id" value="{{ event.id }}">
<input type="submit" value="Commit to this event">
{% csrf_token %}
</form>
</p>
{% endif %}

我知道变量current_user_is_not_crew为true,因为我已调试过:

Assert False, locals()

在视图中,它向我展示了它。 views.py看起来像这样:

@login_required
def event(request, event_id):
    event = Event.objects.get(pk=event_id)
    crew = event.userprofile_set.all()
    current_user = request.user.get_profile()
    if current_user in crew:
         current_user_is_not_crew = False
    else:
         current_user_is_not_crew = True
    context = RequestContext(request)
    context['event'] = event
    context['crew'] = crew
    context['current_user'] = current_user_is_not_crew
    return render_to_response('event.html', context)

你能帮忙吗?

1 个答案:

答案 0 :(得分:4)

您传递给模板的变量是current_user,而不是current_user_is_not_crew

您的模板if if block应引用current_user