django包含任何查询

时间:2013-06-11 23:01:45

标签: python django django-models

我正在尝试创建一个查询,选择ProblemSet的所有uuids,其问题至少包含一个特定问题类型的问题。我怎么能在Django中做到这一点?在mysql中它将是一个简单的连接,但是django的'__contains'不能满足需求..

谢谢!

class ProblemType:
  name ..... (many fields)

class Problem:
  problem_type = models.ManyToManyField(ProblemType)
  ...... (many fields)

class ProblemSet:
  problems = models.ManyToMnayField(Problem)
  uuid = models.CharField(...)
  ...... (many fields)

1 个答案:

答案 0 :(得分:2)

普通filter不起作用吗?

uuids = ProblemSet.objects.filter(problems__problem_type__name='MyProblemType')
    .values_list('uuid', flat=True)

此外,您的问题是否有多个problem_type?如果是这样,那么您应该通过将ManyToManyField重命名为problem_types来反映这一事实(请注意复数化)。否则,您不应使用ManyToManyField