首页 > 解决方案 > Django:查询request.user是否是组的管理员

问题描述

class Group(models.Model):
    group_name = models.CharField(max_length=256)
    group_desc = models.CharField(max_length=2000, blank=True)
    created_by = models.ForeignKey(User, on_delete=models.PROTECT, blank=True, null=True, related_name='created_groups')
    group_pic = models.ImageField(blank=True)
    users = models.ManyToManyField(User, through='GroupMember')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)


class GroupMember(models.Model):
    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    is_group_admin = models.BooleanField(default=False)

我有这两个模型,我想查询 request.user 是否属于特定组并且是否为 group_admin:

我已经成功查询了第一部分,但无法完成后一部分。对于第一部分,我编写了以下查询:

GroupMember.objects.filter(id=pk, group__users__in=[request.user])

任何形式的帮助将不胜感激。

标签: djangodjango-modelsdjango-queryset

解决方案


尝试:

GroupMember.objects.filter(user=request.user, group=<group_to_check>, is_group_admin=True).exists()

推荐阅读