【问题标题】:django different user authenticationdjango不同的用户认证
【发布时间】:2013-08-25 08:45:43
【问题描述】:

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

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

有什么建议吗?谢谢一百万!

【问题讨论】:

  • 你使用的是什么版本的django

标签: django authentication login django-models django-views


【解决方案1】:

您可以查看

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

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

希望这会有所帮助!

【讨论】:

    【解决方案2】:
    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      相关资源
      最近更新 更多