[英]How to have specific users see different webpages in Django?
我想知道如何處理一個網站,一旦用戶登錄,就能夠向每個用戶顯示完全不同的頁面?
那么這將是一個單獨的用戶/組權限(使用Django auth這樣做)? 或者這是否能夠使用模型實現(即,具有每種類型的用戶帳戶的模型,只是在數據庫中保存實例)?
這是Django(和web dev)的第一個星期左右,所以我對這些東西並不熟悉。
在用戶登錄后,假設它們落在settings.LOGIN_REDIRECT_URL
的URL上,您可以將其更改為例如/enter/
URL,並且您可以將該/enter/
URL映射到名為enter_view()
的下方視圖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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.