您的位置:首页 > 编程语言 > Go语言

django 用户认证

2013-09-23 12:41 316 查看
1、自定义用户登录login.html

2、认证用户

#点击login.html中submit按键触发登录动作
def login_action(request):
username = request.POST['username']
password = request.POST['password']
pre_url = request.POST['pre_url']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request,user)
# Redirect to a success page.
if pre_url:
return redirect(pre_url)
else:
return redirect('/')
else:
# Return a 'disabled account' error message
return redirect('/disabled_account/')
else:
# Return an 'invalid login' error message.
return redirect('/invalid_login/')


3、需要将request传入login.html,以便在头部显示登录用户名称

settings.py添加如下段落:

TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth",

"django.core.context_processors.request",

)

template中的其它页面需要用到username需要在render页面时传入request:

context_instance参数将request传入login.html

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

在login.html中获取username

{% if request.user.is_authenticated %}
<li align="left"></br><a href="logoutview" data-toggle="tooltip" title="Loginoff"><i class='icon-share'></i>{{ request.user.username }}Logout</a></li>
{% else %}
<li align="left"></br><a href="/login/" data-toggle="tooltip" title="Login"><i class='icon-share'></i>Login</a></li>
{% endif %}


4、如果想在template中使用用户权限

如:User.objects.get(username='wangsan').get_group_permissions()

需要自定义tag

permission部分详细说明见下一篇文章

参考:django中的admin模块模板render用的是TemplateResponse方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: