Предоставление списка словарей в Django - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть следующая модель в моем проекте 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 %}

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете сделать:

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 %}

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

...