Задвоенный SQL запрос Django

Подскажите, как правильно организовать данный код, что бы не было повторяющегося запроса

models.py

User = get_user_model()

class Post(models.Model):
    title = models.CharField(max_length=50)
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)

views.py

def index(request):
    template_name = 'blog/index.html'
    posts = Post.objects.all()
    context = {'posts': posts}
    
    return render(request, template_name, context)

html

{% for post in posts %}
    {{ post.title }}
    {{ post.user }}
{% endfor %}

debug_toolbar debug_toolbar

  1. Потому что post.user ссылается на другую модель (является внешним ключом), а post.title - нет

  2. Нет, не норма. Для предотвращения подобного поведения в django придумали select_related

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