2013-08-25 5 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) 
Смежные вопросы