我的应用在视图中有一个基本的登录功能:
def login_page(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect("main_page.html")
else:
return HttpResponseRedirect('/')
else:
return HttpResponseRedirect('/')
我在admin(工作室,帐户等)中设置了不同的组,以便我可以在登录时将用户定向到他的特定组页面。我想做点什么:
from django.contrib.auth.models import User, Group
if user is not None:
if user.is_active:
login(request, user)
if User.objects.filter(group__iexact='studio')
return HttpResponseRedirect("studio_page.html")
else:
return HttpResponseRedirect('/')
但我认为我不能以这种方式访问群组成员。这项任务的正确方法是什么?
答案 0 :(得分:1)
User
与Group
有ManyToMany关系。所以你可以这样做:
if user.groups.filter(name='studio').exists():
答案 1 :(得分:0)
user.groups是一个查询集,其中包含用户所属的所有组,因此您只需检查该集合中是否包含正确的组。像这样:
if user.groups.filter(name='studio').exists():
return HttpResponseRedirect("studio_page.html")