﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
13692	Wrong ORM in complex filter	myneur		"== With Models: ==
{{{
class Professional(models.Model):
	hits = models.PositiveIntegerField() 

class Article(models.Model):
	hits = models.PositiveIntegerField()
	authors = models.ManyToManyField(Professional)

class Query(models.Model):
	hits = models.PositiveIntegerField() 
	author = models.ForeignKey(Professional, blank = True, null = True) 
}}}
== A Query: ==
{{{
Professional.objects.annotate(article_hits=Sum(""article__hits""), query_hits=Sum(""query__hits"")).exclude(Q(article_hits=None)&Q(query_hits=None))
}}}
Produces exactly the same SQL as: 
{{{
...exclude(Q(article_hits=None)|Q(advice_hits=None))
...filter(Q(article_hits=None)&Q(advice_hits=None))
...filter(Q(article_hits=None)|Q(advice_hits=None))
}}}

All of these queries produces a SQL with exactly the same last clause: 
{{{
.... HAVING (SUM(""articles_article"".""hits"") IS NULL AND SUM(""solutions_query"".""hits"") IS NULL)
}}}
It doesn't respond to filter/exclude or &| operator.

(and also the result is the same)"		closed	Database layer (models, ORM)	1.1		duplicate	filter, Q objects		Unreviewed	0	0	0	0	0	0
