Я пытаюсь вернуть наиболее проголосовавший ответ для каждого вопроса. Также я хочу отправить дополнительную информацию об этом ответе, такую как голосование и идентификатор .
Печатьодно значение легко, но для более чем одного мне нужно вернуть словарь. Так как я могу вернуть словарь и распечатать все значения в шаблоне.
from django import template
register = template.Library()
@register.simple_tag
def getmostvotedanswer(answers):
answer = answers.order_by('-vote')[0]
answer_info = {
'answer':answer.answer,
'vote':answer.vote,
'id':answer.id
}
return answer_info
index.html
<p class="small text-muted ">{% getmostvotedanswer question.answer_set.all %}</p>
Вывод {'answer': 'THIS IS ANSWER THIS IS ANSWER THIS IS ANSWER THIS IS ANSWER THIS IS ANSWER', 'vote': 7, 'id': 1}
Я могу вызвать template_tag 3 раза для трех значений.
Но я не хочу вызывать templatetagСнова и снова я думаю, что это повлияет на производительность.
view.py
def index(request):
questions = Question.objects.all()
context = {
'questions':questions
}
return render(request,'index.html',context=context)
Правка -> Добавить view.py