2013-08-25 84 views
0

我有一個關於Django中的不同用戶身份驗證的問題。django不同的用戶身份驗證

假設我有兩種類型的用戶,我想給他們對不同頁面或視圖的不同訪問權限。我知道有@login_required來區分登錄用戶和訪問者。我只是想知道如何區分兩種不同類型的登錄用戶。如果使用@login_required,則需要進行另一次檢查以查看該用戶是否屬於任一組,這可能不是解決問題的好方法。

有什麼建議嗎?太感謝了!

+0

您正在使用的是什麼版本的'django'? –

回答

0

您可以通過

if request.user.is_authenticated(): 
    #code..... 
else: 
    #code.... 

if request.user.is_anonymous: 
    #code..... 
else: 
    #code.... 

希望這有助於檢查!

0
class MyModelDetailView(generic.DetailView): 
    model = MyModel 

    @login_required 
    def dispatch(self, *args, **kwargs): 
     return super(MyModelDetailView, self).dispatch(*args, **kwargs) 

    def get(self, request, *args, **kwargs): 
     object = super(MyModelDetailView, self).get_object() 
     context = super(MyModelDetailView, self).get_context_data(**kwargs) 
     user = self.request.user 
     if user.groups.filter(name='group1'): 
      context['group_info'] = object.group1_info #unique info for this group 
     elif user.groups.filter(name='group2'): 
      context['group_info'] = object.group2_info #unique info for this group 
     else: 
      context['group_info'] = object.anon_info 

     return render(request, self.template_name, context)