In Django, how do I check if a user is in a certain group?

前端 未结 12 2002
借酒劲吻你
借酒劲吻你 2020-11-28 18:25

I created a custom group in Django\'s admin site.

In my code, I want to check if a user is in this group. How do I do that?

12条回答
  •  失恋的感觉
    2020-11-28 18:45

    You can access the groups simply through the groups attribute on User.

    from django.contrib.auth.models import User, Group
    
    group = Group(name = "Editor")
    group.save()                    # save this new group for this example
    user = User.objects.get(pk = 1) # assuming, there is one initial user 
    user.groups.add(group)          # user is now in the "Editor" group
    

    then user.groups.all() returns [].

    Alternatively, and more directly, you can check if a a user is in a group by:

    if django_user.groups.filter(name = groupname).exists():
    
        ...
    

    Note that groupname can also be the actual Django Group object.

提交回复
热议问题