我正在尝试创建一个查询,选择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)
答案 0 :(得分:2)
普通filter
不起作用吗?
uuids = ProblemSet.objects.filter(problems__problem_type__name='MyProblemType')
.values_list('uuid', flat=True)
此外,您的问题是否有多个problem_type
?如果是这样,那么您应该通过将ManyToManyField
重命名为problem_types
来反映这一事实(请注意复数化)。否则,您不应使用ManyToManyField
。