2011-04-23 75 views
0

作爲this question的後續操作,我想查明發生的實際錯誤。我做錯了什麼,或者這是一個錯誤?Django動態過濾器故障

f = {'groups__isnull': 'True'} 
    students1 = models.Student.objects.filter(**f) 
    students2 = models.Student.objects.filter(groups__isnull=True) 

這兩個查詢應該是相同的,但不是。

僅供參考,我的模型:

class Student (models.Model): 
    user = models.ForeignKey(User, unique=True, null=False, related_name='student') 
    teacher = models.ForeignKey(User, null=False, related_name='students') 
    assignment = models.ForeignKey(LabJournal, blank=True, null=True, related_name='students') 

class JournalGroup (models.Model): 
    title = models.CharField(null=False, max_length=256) 
    owner = models.ForeignKey(User, null=True, related_name='journal_groups') 
    members = models.ManyToManyField(Student, blank=True, related_name='groups') 

回答

5

我看到查詢之間的明顯差異。

{'groups__isnull': True}永遠不會等於{'groups__isnull': 'True'}

One提供True作爲布爾值,其他作爲字符串提供。