У меня есть 3 набора запросов для 3 различных типов статей: правая, центральная, левая.Я пытаюсь отобразить их в 3 столбцах, чтобы они выглядели так:
Right Lean |Центр Lean |Левый наклон
правый наклон |Центр Lean |Lean Lean
Right Lean |Центр Lean |Left Lean
Итак, у меня есть это в трех наборах запросов, как это в представлении:
right_articles = sline.article_set.filter(avgLean__lte=-0.75).order_by('-credibility')[:25]
left_articles = sline.article_set.filter(avgLean__gte=0.75).order_by('-credibility')[:25]
center_articles = sline.article_set.filter(avgLean__gt=-0.75).filter(avgLean__lt=0.75).order_by('-credibility')[:25]
И я добавил счетчик для того, сколько я хочу в каждом столбце как частьконтекст, подобный этому:
return render(request, 'storylines/detail.html', {'n_articles': range(0, 24),
'storyline': sline,
'reqUser':request.user,
'vote':ini, 'right_articles':right_articles,
'left_articles': left_articles,
'center_articles': center_articles})
Затем я перехожу к шаблону и перебираю такие, как этот:
<div class="row">
<div class= "col-4">
Left articles: {{ left_articles.count }}
</div>
<div class= "col-4">
Center articles: {{ center_articles.count }}
</div>
<div class= "col-4">
Right articles: {{ right_articles.count }}
</div>
</div>
{% for i in n_articles %}
<div class="row">
Trying {{ i }}<br>
{% with left_articles.i as lt_article %}
{% if lt_article %}
{% show_card lt_article %}
{% else %}
<div class="col-4">No Left article {{ i }}</div>
{% endif %}
{% endwith %}
{% with center_articles.i as cn_article %}
{% if cn_article %}
{% show_card cn_article %}
{% else %}
<div class="col-4">No Center article {{ i }}</div>
{% endif %}
{% endwith %}
{% with right_articles.i as rt_article %}
{% if rt_article %}
{% show_card rt_article %}
{% else %}
<div class="col-4">No Right article {{ i }}</div>
{% endif %}
{% endwith %}
</div>
{% endfor %}
Операторы count в первой строке показывают, что у меня действительно есть 1каждый слева / в центре / справа.Если я изменю свой код, чтобы заменить right_articles.i на right_articles.0, я получу статью.Строка с надписью Trying {{i}} показывает, что я начинаю с 0, поэтому right_articles.i должен возвращать статью, когда i = 0. Однако, к сожалению, я не получаю статей, что означает, что у меня что-то не так с синтаксисом
{% with right_articles.i as rt_article %}
Может кто-нибудь сказать мне правильный способ сказать то, что я пытаюсь сказать здесь?
Спасибо!