我有一个关于 Django 中不同用户身份验证的问题。
假设我有两种用户,我想给他们不同的访问不同的页面或视图。我知道有 @login_required 来区分登录用户和访问者。我只是想知道如何区分两种不同类型的登录用户。如果使用@login_required,我需要再次检查该用户是否属于任一组,这可能不是解决问题的好方法。
有什么建议么?太感谢了!
我有一个关于 Django 中不同用户身份验证的问题。
假设我有两种用户,我想给他们不同的访问不同的页面或视图。我知道有 @login_required 来区分登录用户和访问者。我只是想知道如何区分两种不同类型的登录用户。如果使用@login_required,我需要再次检查该用户是否属于任一组,这可能不是解决问题的好方法。
有什么建议么?太感谢了!
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)
您可以通过
if request.user.is_authenticated():
#code.....
else:
#code....
或者
if request.user.is_anonymous:
#code.....
else:
#code....
希望这可以帮助!