【问题标题】:django models - query with manytomanyfielddjango 模型 - 使用 manytomanyfield 查询
【发布时间】:2014-05-11 20:13:02
【问题描述】:

我对与 ManyToManyField 连接的 1 个查询有疑问。我们有 2 个相关模型:用户和事件。模型事件与用户有 2 个关系,它必须有 1 个组织者和任何数量或参与者 - 组织者不能是参与者(我跳过了负责验证的代码)。现在,作为一个例子,我想要的是我组织的活动的所有参与者。问题是下面的查询只获取 request.user 本人,一起跳过所有参与者。有没有办法在没有任何自定义查询的情况下实现我的需要?谢谢

#models.py

class User(models.Model):
    name = models.CharField(max_length=100)

class Event(models.Model):
    name = models.CharField(max_length=100)
    organiser = models.ForeignKey(User)
    participants = models.ManyToManyField(User, related_name='participants', blank=True, null=True)

#views.py

def assess_partners(request):
    users = User.objects.filter(event__organizer=request.user)
    return render(request, 'some template.html', {'users': users})

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    如果你使用更好的related_names,事情会更清楚,例如:

    class Event(models.Model):
        name = models.CharField(max_length=100) 
        organiser = models.ForeignKey(User, related_name='events_as_organiser')
        participants = models.ManyToManyField(User, related_name='events_as_participant', blank=True)
    

    我想要的是我组织的活动的所有参与者

    User.objects.filter(events_as_participant__organiser=request.user).distinct()
    

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2019-07-13
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      相关资源
      最近更新 更多