For example, the Invoice model has a project field that points a ForeignKey to the Project model, Project has a custom ProjectManager that has get_queryset defined, in get_queryset I do:
super().annotate(display=...)
and when I want to get this annotated field through Invoice:
Invoice.objects.filter(project__display__iregex=...)
then an error occurs that project does not have a display field, how can I make it so that the related models take fields from some queryset, this is get_queryset() for us
- Django 4.2.4
- Python 3.10
To take annotated fields I use Subquery:
Subquery(models.Project.objects.filter(id=OuterRef("project_id")).values_list("display"))
but because of this the request is executed very slowly.