Отказ динамического фильтра Django - PullRequest
0 голосов
/ 23 апреля 2011

В качестве продолжения этого вопроса я бы хотел точно указать, какая именно ошибка произошла. Я что-то не так делаю, или это ошибка?

    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')

1 Ответ

5 голосов
/ 23 апреля 2011

Я вижу очевидное различие между запросами.

{'groups__isnull': True} никогда не равно {'groups__isnull': 'True'}.

Один предоставляет True как логическое значение, другой как строку.

...