﻿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
32684	Annotate query with Subquery with None value cannot be reliably filtered (or excluded)	Gerben Morsink	nobody	"Let's say I have the following query

{{{
        last_location = Subquery(PersonLocation.objects.filter(
            person=OuterRef('id'), departure_date=None).order_by('-arrival_date').values('location')[:1])

        persons1 = Person.objects_with_inactive.annotate(current_location=last_location)
}}}
Where PersonLocation is the table connecting the Person to a Location (to keep track of the location history of a person).

And further in the code I do:


{{{
        persons2 = persons1.exclude(current_location=location.id)
}}}
This will always return an empty queryset. Even if in persons1 there are person objects that have `current_location = None` annotated.
This is very counter-intuitive, right?

I'm also not aware of a way to fix this. I tried `persons1.filter(~Q(current_location=location.id))`, but the result is the same."	Bug	new	Database layer (models, ORM)	3.1	Normal		annotate, Subquery		Unreviewed	0	0	0	0	0	0
