我正在使用来自 django 的默认模型用户(因为我使用的是 django-facebook)并且用户身份验证在模板中不起作用。这是代码:
{% if request.user.is_authenticated %}
Welcome, {{ request.user.first_name }}
<a href="/logout">logout</a>
{% else %}
<form action="{% url facebook_connect %}?facebook_login=1" method="post">
<a href="javascript:void(0);" style="font-size: 20px;" onclick="F.connect(this.parentNode);">
<img src="/media/images/site/facebook_login.png" alt="facebook_login" class="facebook_login_button"/>
</a>
<input type="hidden" value="{{ request.path }}" name="next" />
</form>
{% endif %}
我已经从视图中传递了 context_instance:
return render_to_response('index.html', context, context_instance=RequestContext(request))
但它仍然行不通。谢谢你的帮助!
编辑:
用户使用 django-facebook 成功登录(插入到 auth_user 表中)并显示了他的数据,但是当用户注销时,他的数据消失了,并且在上面编辑的代码中看到的登录表单没有显示!
这是我用于登录和注销用户的完整视图:
def logout_view(request):
logout(request)
return HttpResponseRedirect('/')
def signin(request):
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('/')
else:
# TO RETURN ERROR
return HttpResponseRedirect('/')
else:
# TO RETURN ERROR
return HttpResponseRedirect('/')
如果我从 request.user.first_name 中删除请求,则会出现错误:
您需要在项目设置中设置 AUTH_PROFILE_MODULE
这就是我能得到的所有细节..