﻿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
26393	Unable to filter annotations across relationships.	Ryan P Kilby	nobody	"Per the title, it seems like it would make sense to be able to filter annotations across relationships. Given the following,
{{{
from django.db import models
from django.db.models import Value as V
from django.db.models.functions import Concat


class PersonManager(models.Manager):
    use_for_related_fields = True

    def get_queryset(self):
        queryset = super(PersonManager, self).get_queryset()
        queryset = queryset.annotate(full_name=Concat(
            'first_name', V(' '), 'last_name',
            output_field=models.CharField()
        ))
        return queryset


class Person(models.Model):
    first_name = SubCharField(max_length=100)
    last_name = SubSubCharField(max_length=100)

    objects = UserManager()


class Article(models.Model):
    published = models.DateTimeField()
    author = models.ForeignKey(User, null=True, on_delete=models.CASCADE)

}}}

Running this:
{{{
Article.objects.filter(author__full_name=""Bob, just Bob"")
}}}

Produced the following traceback (snipped)
{{{
  ...
  File ""site-packages/django/db/models/query.py"", line 790, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File ""site-packages/django/db/models/query.py"", line 808, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))
  File ""site-packages/django/db/models/sql/query.py"", line 1243, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File ""site-packages/django/db/models/sql/query.py"", line 1269, in _add_q
    allow_joins=allow_joins, split_subq=split_subq,
  File ""site-packages/django/db/models/sql/query.py"", line 1192, in build_filter
    raise FieldError('Related Field got invalid lookup: {}'.format(lookups[0]))
FieldError: Related Field got invalid lookup: full_name
}}}"	Uncategorized	new	Database layer (models, ORM)	1.9	Normal				Unreviewed	0	0	0	0	0	0
