набор запросов использует 'значения' для соединения ,, ... переменные шаблона - это слишком длинное имя .. я могу изменить его? - PullRequest
0 голосов
/ 22 июня 2019

значения набора запросов и LEFT-соединение auth_user слишком длинное имя переменной шаблона

Могу ли я изменить имя шаблона на более короткое?

queryset = Post.objects.values('id','subject','created_by_id','created_by__first_name')    

Мне нужно использовать имя переменной шаблона, например, "post.created_by__first_name" Это слишком долго ... я могу это изменить?

Ответы [ 2 ]

1 голос
/ 22 июня 2019

Вы можете использовать аннотирование для создания псевдонима, например:

from django.db.models import F

queryset = Post.objects.annotate(
    <b>fn=F('created_by__first_name')</b>
).values('id','subject', 'created_by_id', <b>'fn'</b>)

Но использование .values(..) обычно не хорошая идея.Вы можете использовать .select_related(..) [Django-doc] для извлечения связанных объектов в том же запросе.

0 голосов
/ 22 июня 2019

Например, вы можете переименовать его b, используя аннотирование и объект F.

from django.db import models

Post.objects.annotate(new=models.F('created_by__first_name')).values('id', 'subject', 'created_by_id', ’new’)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...