{{{
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)
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/32750>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* owner: nobody => Chiorufarewerin
--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:1>
* stage: Unreviewed => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:2>
* stage: Accepted => Ready for checkin
Comment:
[https://github.com/django/django/pull/14400 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:3>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"3954bf50fb814e7362e69f1020a747e601cc73fe" 3954bf50]:
{{{
#!CommitTicketReference repository=""
revision="3954bf50fb814e7362e69f1020a747e601cc73fe"
Fixed #32750 -- Fixed crash of Extract() transform on OuterRef()
expressions.
Thanks Simon Charette for the review.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:4>