I have 3 models:
class Ban:
name: models.CharField()
person: models.ForeignKey(to="apps.Person")
class Employee:
name: models.Charfield()
person: models.ForeignKey(to="apps.Person")
class Person:
name: models.Charfield()
# here a have access to Ban and Employee as self.ban_set, self.employee_set
I can get all Employee objects from Ban object as: ban_object.person.employee_set
I need annotate Ban queryset by Employee first object from Ban "person.employee_set" field.
I try do this by:
employees = Employee.objects.filter(person_id=OuterRef("person_id"))
qs = Ban.objects.annotate(
employee=Subquery(employees[:1])
)
But I get error: "Cannot resolve expression type, unknown output_field" If I set output_field as models.ForeignKey() for Subquery or annotate, nothing working too
UPDATE I can get id of first Empoyee by:
employees = Employee.objects.filter(person_id=OuterRef("person_id")).values("id")
qs = Ban.objects.annotate(
employee=Subquery(employees[:1])
)
So, I think annotate by object value is impossible? Only by id value?