0

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

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

有什么建议么?太感谢了!

4

2 回答 2

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)
于 2013-08-26T11:30:29.653 回答
0

您可以通过

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

或者

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

希望这可以帮助!

于 2013-08-25T09:00:41.407 回答