我想知道如何处理一个网站,一旦用户登录,就能够向每个用户显示完全不同的页面?
- 考虑一个主登录/注册页面。
- 一旦用户注册,根据他们的权限,他们将被重定向到适合他们用户类型的页面(同时无法访问任何其他类型的页面)。
那么这会是一个单独的用户/组权限的事情(使用 Django auth 这样做)吗?或者这是否可以使用模型来实现(即拥有每种类型的用户帐户的模型并仅在数据库中保存实例)?
这是我使用 Django(和网络开发)的第一周左右,所以我对这些东西一点也不熟悉。
最佳答案
根据权限重定向用户
在用户登录后,假设他们登陆了由 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')
要更改您的 LOGIN_REDIRECT_URL
只需放入 settings.py
LOGIN_REDIRECT_URL = '/enter/' # or any URL you want
引用资料
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 %}
https://docs.djangoproject.com/en/1.8/topics/auth/default/#permissions
关于python - 如何让特定用户在 Django 中看到不同的网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680706/