pro*_*ype 1 authentication django
我正在使用django的默认模型User(因为我使用的是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 %}
Run Code Online (Sandbox Code Playgroud)
我从视图中传递了context_instance:
return render_to_response('index.html', context, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
但它仍然无法奏效.谢谢你的帮助!
编辑:
用户使用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('/')
Run Code Online (Sandbox Code Playgroud)
如果我从request.user.first_name中删除请求,则会出现错误:
您需要在项目设置中设置AUTH_PROFILE_MODULE
这是关于我可以得到的所有细节..
我不知道为什么request.user.is_authenticated不工作但我找到了解决方案 - 使用
{% if not user.is_anonymous %}
代替
{% if request.user.is_authenticated %}
似乎可以做到这一点.if工作且仅登录用户将显示其信息和注销按钮.
| 归档时间: |
|
| 查看次数: |
1425 次 |
| 最近记录: |