Django queryset用于多对多关系

时间:2014-05-17 04:46:13

标签: python django django-orm

我无法理解我应该如何获取包含用户的群组的查询集,我已尝试__setprefetch_select,但仍然没有结果。

class User(AbstractUser):
    ...

class Group(models.Model):
    ...
    Member_list = models.ManyToManyField(User, through='Member', blank=True, related_name="Member_list")

class Member(models.Model):
    group = models.ForeignKey(Group, blank=True, null=True, on_delete=models.SET_NULL)
    user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
    ...

我需要获取所有群组,其中Member.objects.filter(user==request.user)

2 个答案:

答案 0 :(得分:0)

您应该开始向用户查询。

试试这个

user = request.user
groups = user.group_set.all()

答案 1 :(得分:0)

我的数据库模型中有圆圈,group_set采用其他方式,这就是为什么它返回空。 使用related_name,它的工作正确:

u.Member_list.all()