Пользовательское представление внешнего ключа в Django

Если у меня есть две модели

class Parent(models.Model):
    attribute_1 = ....
    attribute_2 = ....

class Child(models.Model):
    parent = models.ForeignKey(Parent)

Django по умолчанию будет делать ленивую выборку для родителя, поскольку он будет обращаться к базе данных, когда я попытаюсь получить доступ к атрибуту_1 или атрибуту_2, так как я могу заставить его получать их по умолчанию для этого конкретного случая использования

Используйте select_related при получении дочернего объекта(ов), чтобы также получить данные для внешнего ключа в одном запросе

child = Child.objects.select_related('parent').get(id=1)
print(child.parent.attribute_1) # No additional query
print(child.parent.attribute_2) # No additional query
Вернуться на верх