1

我的应用在视图中有一个基本的登录功能:

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('/')

我在管理员(工作室、帐户等)中设置了不同的组,以便我可以在登录时将用户引导到他的特定组页面。我想做类似的事情:

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('/')

但我认为我不能以这种方式访问​​组成员。这项任务的正确方法是什么?

4

2 回答 2

1

User与 具有多对多关系Group。所以你可以这样做:

if user.groups.filter(name='studio').exists():
于 2012-05-12T21:25:46.790 回答
0

user.groups 是一个查询集,其中包含用户所属的所有组,因此您只需检查该组中是否包含正确的组。像这样的东西:

if user.groups.filter(name='studio').exists():
    return HttpResponseRedirect("studio_page.html")
于 2012-05-12T21:27:49.970 回答