django-modeltranslation
django-modeltranslation copied to clipboard
Support for Subquery
I have the followinmg subquery that should annotate a user with their team name:
Subquery(Team.objects.filter(users__pk=OuterRef('pk')).order_by('order').values_list('name', flat=True)[:1])
However, this code fails for non-default locale because modeltranslation replaces values_list('name', flat=True)
internally with values_list('name_en', 'name_es', flat=True)
This results in the following error when trying to annotate a queryset:
django.core.exceptions.FieldError: Cannot resolve expression type, unknown output_field
Defining output_field
makes the error clearer:
django.db.utils.ProgrammingError: subquery must return only one column
Hi, thanks for reporting.
If you can, please try to dig this issue further and make PR with a fix.
I've faced the same issue.
Any solutions to this problem? any workarounds? @mick88 I'm facing the same issue
No @celyes, I don't understand the code of this library well enough to contribute. I worked around the issue by not using a Subquery for now.
@mick88 that's a choice that I cannot make on my current project. The project I'm working on relies heavily on advanced features of the ORM so I'll either have to find a workaround or just ditch the library in favor of another one. Anyway, thanks for your reply. I appreciate it!