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

ログイン時にユーザーを特定のグループページに誘導できるように、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('/')

しかし、私はこの方法でグループメンバーにアクセスできるとは思いません。このタスクへの正しいアプローチは何ですか?

4

2 に答える 2

1

UserとManyToManyの関係があり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 に答える