django - 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])
任何形式的帮助将不胜感激。
解决方案
尝试:
GroupMember.objects.filter(user=request.user, group=<group_to_check>, is_group_admin=True).exists()
推荐阅读
- python - 非泛型类的泛型类方法
- python - 从 Google Calendar API 获取与会者电子邮件 - Python
- javascript - 使用 JS 从重复的类中选择一个类
- three.js - Safari - THREE.WebGLProgram:着色器错误:错误:不支持的着色器版本 1:#version 300 es
- reactjs - material-ui 使用具有差异值的自动完成,选项类型
- sql - 滞后函数和 SUM
- r - 如何使用 facet 调整 ggplot 以在每个绘图视图中仅显示一个或两个变量
- java - Junit 5 @MockBean 中的 NullPointerException
- python - Pandas - 将每个可重复类的 ID 分组并将它们放在列中的列表中
- django - Django 数据表加载时间过长