Ian*_*Ian 4 python authentication django web
我想知道如何处理一个网站,一旦用户登录,就能够向每个用户显示完全不同的页面?
那么这将是一个单独的用户/组权限(使用Django auth这样做)?或者这是否能够使用模型实现(即,具有每种类型的用户帐户的模型,只是在数据库中保存实例)?
这是Django(和web dev)的第一个星期左右,所以我对这些东西并不熟悉.
在用户登录后,假设它们落在由settings.LOGIN_REDIRECT_URL您设置的URL上,您可以更改为例如/enter/URL,并且您可以映射该/enter/URL以由下面的视图支持enter_view()
from django.shortcuts import redirect
def enter_view(request):
if request.user.has_perm('app_label.permission_codename'):
return redirect('/page-A')
elif request.user.has_perm('app_label.another_permission'):
return redirect('/page-B')
else:
return redirect('/page-C')
Run Code Online (Sandbox Code Playgroud)
改变你的LOGIN_REDIRECT_URL简单投入settings.py
LOGIN_REDIRECT_URL = '/enter/' # or any URL you want
Run Code Online (Sandbox Code Playgroud)
参考
https://docs.djangoproject.com/en/1.8/ref/settings/#login-redirect-url https://docs.djangoproject.com/en/1.8/ref/contrib/auth/#django.contrib.auth .models.User.has_perm https://docs.djangoproject.com/en/1.8/topics/http/shortcuts/#redirect
此外,如果您需要自定义模板的小部分,还可以使用该{{ perms }}对象以类似方式检查用户权限
{% if perms.foo.can_vote %}
<p>You can vote!</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
https://docs.djangoproject.com/en/1.8/topics/auth/default/#permissions
| 归档时间: |
|
| 查看次数: |
1709 次 |
| 最近记录: |