Возможно ли отфильтровать набор запросов по его объектам ForeignKey related_name?

У меня есть простая модель:

class Object(models.Model):
  name = CharField()
  root = ForeignKey("self", null=True, blank=True, on_delete=models.SET_NULL)

Я создаю несколько объектов:

parent1 = Object.create(name="parent1")
o1 = Object.create(name="1", root=parent1")

parent1.object_set.all() # Returns queryset with o1

Возможно ли отфильтровать набор запросов по связанным_именам объектов ForeignKey (т.е. object_set)? Что-то вроде:

Object.objects.filter(object_set__name="1") # To return parent1

Я получаю следующую ошибку: Cannot resolve keyword 'object_set' into field.

Я понимаю, что могу сделать Object.object.get(name="1").root, но это приводит к дополнительным запросам, которые в моем конкретном случае могут сильно увеличиться.

Использование:

Object.objects.filter(object__name="1")`

вместо:

Object.objects.filter(object_set__name="1")

Как определить имя поиска описано в документации:

Хотя это можно настроить, по умолчанию вы ссылаетесь на "обратное" отношение в поиске, используя строчное имя модели.

Вернуться на верх