﻿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
32750	ExtractMonth from OuterRef in Subquery don't work	Chiorufarewerin	Chiorufarewerin	"Just example code:

{{{
DTModel.objects.create(name='1', start_datetime=datetime(2000, 1, 1))
DTModel.objects.create(name='2', start_datetime=datetime(2001, 2, 5))
DTModel.objects.create(name='3', start_datetime=datetime(2002, 1, 7))
DTModel.objects.create(name='4', start_datetime=datetime(2003, 2, 8))

subquery_qs = DTModel.objects.filter(
    name__in=['3', '4'],
    start_datetime__month=ExtractMonth(OuterRef('start_datetime')),
)

qs = DTModel.objects.filter(name__in=['1', '2'])
qs = qs.annotate(related_name=Subquery(subquery_qs.values('name')[:1]))
}}}

This code raises where ExtractMonth(OuterRef('start_datetime')):
{{{
'ResolvedOuterRef' object has no attribute 'output_field'
}}}

It can be works with something like:

{{{
start_datetime__month=ExtractMonth(Func(OuterRef('start_datetime'), function='', output_field=DateTimeField())),
}}}

Or if redefine class:
{{{
class ExtractMonthCustom(ExtractMonth):
    def resolve_expression(self, *args, **kwargs):
        return super(Extract, self).resolve_expression(*args, **kwargs)
}}}
"	Bug	closed	Database layer (models, ORM)	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
