python - 无法在基本模板中使用 user.username

标签 python django

嗨,我尝试在我的基本模板中使用用户对象,但即使在登录页面后,用户对象每次也返回空值

请在这里找到我的代码:

浏览次数:

def loginView(request):
    if request.POST:
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username =username, password = password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return HttpResponseRedirect('/rango/home/')
        else: 
            print 'No user exist'
    else:
        c= {}
        c.update(csrf(request))
        return render_to_response('login.html', c)     

基础模板

<diV style="float: left;">
{% block sidebar %}
<div>
{% if user.is_authenticated %}
<a href="{%url 'addCategory'  %}">Add Category</a></br>
<a href="{%url 'logout' %}">Logout</a>
{% endif %}
<a href="{%url 'register'%}">Register</a></br>
<a href="{%url 'login'%}">Login</a></br>
<a href="{%url 'about'  %}" >About</a></br>
</div>
{% endblock %}
</diV>

最佳答案

将代码更改为

return render_to_response('login.html', c, 
            context_instance=RequestContext(request))

如果没有context_instance,django将不会在模板上下文中添加默认的上下文处理器数据。因此,您没有在模板中获取 user 对象。

关于python - 无法在基本模板中使用 user.username,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911143/

相关文章:

python - 如何使用 Celery 顺序执行独立任务?

python - 为什么 "include"文件夹在 python 分发中包含 .h 文件(python 3.6.4)

python - 如何迭代具有重复值的列表?

python - 在 Python 中计算整数列表中唯一乘法和加法对数量的有效方法是什么?

python - 解决 SQL 中的三向循环引用 (Django)

python - 无法导入名称 View

python - 使用从数据库加载的 fixture 参数化 pytest

python - python Queue.queue 获取并放置线程安全吗?

python - 无法通过 python 的 Facebook Graph API 将附件(带有图像)发布到 Facebook 页面

python - 我的 css 和图像没有在 django 中显示