从视图将变量传递给django模板

时间:2014-03-19 11:50:25

标签: python django

在我的base.html中,我有以下代码

{% if user_anon == "true" %}
    {% block login_with_fb %}{% endblock %}
{% else %}
    SOMETHING ELSE

在views.py中,我有

t = get_template('login.html')
try:
    c = Context({ 'user_anon':"false" , 'STATIC_URL':'/stic'})
except ObjectDoesNotExist:
    c = Context({ 'user_anon':"true" , 'STATIC_URL':'/stic'})
r = t.render(c)
return HttpResponse(r)

但base.html始终以user_anon =" true"代码...无论传递的c的值如何:/

1 个答案:

答案 0 :(得分:0)

为什么不直接在模板中检查请求?

示例:

{% if user.is_authenticated %}

其次,为什么要将它转换为字符串?我认为在Python中使用true / false会更容易。

最后,为什么要注入静态网址?您应该在配置中进行设置,然后您可以直接通过模板标签使用它。请参阅有关此here的官方文档。

示例:

 {% load staticfiles %}
 <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>