2013-06-11 132 views
0

我想做一个查询,选择ProblemSet的所有uuids,其问题包含至少一个特定问题类型的问题。我该如何在Django中做到这一点?在MySQL中它将是一个简单的连接,但Django的'__contains'不服务需要..django包含任何查询

谢谢!

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) 

回答

2

是否正常filter不能正常工作?

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

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