簡體   English   中英

如何讓特定用戶在Django中看到不同的網頁?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM