Отображение списка словарей в Django

В моем проекте django есть следующая модель (объекты в основном представляют собой список словарей):

  def bill_sum(request):      
     titles = Summary.objects.values('title')
     summary = Summary.objects.values('summary')
     summary_text = Summary.objects.values('summary_text')
     action_date = Summary.objects.values('action_date')
     action_desc = Summary.objects.values('action_desc')
     context = {'title':titles,
  'summary':summary,
  'summary_text':summary_text,
  'action_date': action_date,
  'action_desc':action_desc,
}
      return render(request,'billsummary.html',context)

В моем шаблоне я могу сгенерировать список заголовков с помощью следующего html-кода:

    <!doctype html>
<html>
   <body>
    {% for t in title %}
        <h1>{{t.title}}</h1>

    {% endfor %}


  </body>
</html>

Однако, когда я пытаюсь добавить дополнительную информацию (например, цикл для всех итоговых объектов, ничего не отображается, кроме заголовков. Что мне не хватает? Как мне отобразить список словарей (например, файл данных Json) из моих представлений в шаблон?

Я хочу сделать что-то вроде следующего в шаблоне:

    {% for c in context %}
<h1>c.title</h1>>

<h2>c.summary</h2>
<p>c.action_date</p>
{% endfor %}
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
1 069
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы могли:

summaries = Summary.objects.values('title', 'summary', 'summary_text', 'action_date', 'action_desc')

return render(request,'billsummary.html',context = {'summaries': summaries})

Затем в шаблоне:

{% for t in summaries %}
    <h1>{{t.title}}</h1>
    <p>{{t.summary}}</p>

{% endfor %}

Он попадет в базу данных только один раз и идеально подойдет для вашего случая.

Сработало отлично. Теперь он отображает каждый отдельный словарь в представлении.

Owais Arshad 20.11.2018 05:00

Но здесь вообще нет необходимости использовать значения. Просто возьмите объекты и передайте их в шаблон.

Daniel Roseman 20.11.2018 09:01

Values ​​() гарантирует, что запрос выберет только эти поля, а не все поля в таблице, поэтому он будет быстрее

edilio 25.11.2018 17:37

Другие вопросы по теме