0

我正在尝试进行查询,以选择 ProblemSet 的所有 uuid,其问题至少包含一个特定问题类型的问题。我怎样才能在 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)
4

1 回答 1

2

正常filter不工作吗?

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

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

于 2013-06-11T23:07:01.150 回答