我有以下模型布局
class Group(models.Model):
group_name = models.CharField(max_length=100, default="New Group")
group_created_date = models.DateField(default=date.today)
class GroupMember(models.Model):
groups_joined = models.ManyToManyField(Group)
email = models.EmailField(max_length=100)
name = models.CharField(max_length=100)
我正在尝试在基于类的视图中返回给定组的所有组成员的查询集。 到目前为止我的尝试:
def get_queryset(self):
groupid = self.kwargs['groupid']
qs = Group.objects.filter(groupmember__groups_joined__id=groupid).order_by('-id')
return qs
但是,这会产生错误。
Related Field got invalid lookup: groups_joined
groups_joined
是与 Group
表有关系的列,我似乎使用双下划线以正确的方式访问它。
我只想返回
groups_joined
中具有与当前组匹配且 ID 匹配 groupid
的条目的组成员。
格式化查询以实现此目的的正确方法是什么?
from django.db import models
class Group(models.Model):
group_name = models.CharField(max_length=100, default="New Group")
group_created_date = models.DateField(auto_now=True)
class GroupMember(models.Model):
groups_joined = models.ManyToManyField(
Group, related_name='members'
)
email = models.EmailField(max_length=100)
name = models.CharField(max_length=100)
我对你们的模型做了一些调整。添加了 related_name 属性,用于定义从相关模型回到定义该关系的模型的反向关系的名称。
这是您访问群组成员的方式。
my_group = Group.objects.get(pk=your_group_id)
group_members = my_group.members.all()