django不同用户身份验证

django不同用户身份验证,django,authentication,login,django-models,django-views,Django,Authentication,Login,Django Models,Django Views,我有一个关于Django中不同用户身份验证的问题 假设我有两种类型的用户,我想给他们提供对不同页面或视图的不同访问权限。我知道需要@login_来区分登录用户和访问者。我只是想知道如何区分两种不同类型的登录用户。如果使用@login_required,我需要再次检查该用户是否属于任一组,这可能不是解决问题的好方法 有什么建议吗?万分感谢 您可以通过 if request.user.is_authenticated(): #code..... else: #code.... 或

我有一个关于Django中不同用户身份验证的问题

假设我有两种类型的用户,我想给他们提供对不同页面或视图的不同访问权限。我知道需要@login_来区分登录用户和访问者。我只是想知道如何区分两种不同类型的登录用户。如果使用@login_required,我需要再次检查该用户是否属于任一组,这可能不是解决问题的好方法

有什么建议吗?万分感谢

您可以通过

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


希望这有帮助

您使用的是什么版本的
django
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)
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)