Back to questions
Junior — Middle
47
Что подразумевается под полем related_query_name в Django и как оно используется при моделировании связей?
Companies where asked
Оптимакрос
Диджитал сектор
Answer from AI
sobes.tech AI
В Django поле related_query_name используется в определении связей моделей (ForeignKey, ManyToManyField, OneToOneField) и задаёт имя для обратного доступа к связанным объектам при построении запросов.
По умолчанию Django генерирует имя обратной связи автоматически, но иногда нужно задать более удобное или уникальное имя, особенно если в модели несколько связей на одну и ту же модель.
Пример:
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_query_name='book')
Теперь можно делать запросы типа:
Author.objects.filter(book__title__icontains='Python')
Здесь book — это related_query_name, позволяющее обращаться к книгам автора в фильтрах.
Таким образом, related_query_name помогает удобно и явно называть обратные связи для использования в ORM-запросах.