Календари имеют владельца и имеют поле ManyToMany
«Помощники». У меня есть Календарь, у которого есть 2 помощника, один из которых является его владельцем.Я думаю, что эти 3 строки кода в оболочке django могут достаточно хорошо объяснить странное поведение.
In [17]: Calendar.objects.filter(assistants=customer).exclude(owner=customer)
Out[17]: <QuerySet []>
In [20]: Calendar.objects.filter(owner=customer)
Out[20]: <QuerySet [<Calendar: aliz cal>, <Calendar: yassi has a calendar>]>
In [19]: Calendar.objects.filter(owner=customer) | Calendar.objects.filter(assistants=customer).exclude(owner=customer)
Out[19]: <QuerySet [<Calendar: aliz cal>, <Calendar: aliz cal>, <Calendar: yassi has a calendar>]>
Конечно, ожидалось, что результатом объединения запросов будет их фактическое объединение.