【发布时间】:2021-12-29 18:09:39
【问题描述】:
我是 Django 新手。我在我的 Profile 模型中使用 ManyToMany 字段和 Membership 模型。
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
picture = models.ImageField(blank=True)
membership = models.ManyToManyField(MemberShip, null=True)
我想做的是获得所有具有特定会员资格的用户(来自会员模式)
例如,我想要拥有 Red Membership 的所有用户的列表。我研究并发现select_related() 或prefetch_related 在某种程度上可以提供帮助。但我不明白如何使用这些方法来获得我想要的。
我试过了:
user_memberships_all = Profile.objects.all()
for m in user_memberships_all:
affiliate_with_membership = m.membership.select_related('user').all()
但我收到一条错误消息Invalid field name(s) given in select_related: 'user'.
如果有另一个实现这一目标。你能帮忙吗?谢谢。
【问题讨论】:
-
您想在哪里列出这些用户?
-
在视图中。我正在用我迄今为止尝试过的内容更新问题。
-
@IainShelvington 你现在可以看一下吗。
-
为什么不使用多对一关系?如果你所有的获取都是会员等级?
标签: python mysql django database