2013-06-11 81 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