【问题标题】:Can I dynamically place items in two-column template in Django?我可以在 Django 的两列模板中动态放置项目吗?
【发布时间】:2021-02-02 20:07:44
【问题描述】:

标题可能不太清楚,所以让我详细说明一下。我有一个两列模板,并且想在其中加载一些项目。它看起来像这样:

{{item1}} | {{item2}}
{{item3}} | {{item4}}
{{item5}} | {{item6}}
{{item7}} | {{item8}}
...

这是我的模板中最远的:

{% for a in answers %}
<div class="row justify-content-center">
    <div class="col-6 text-center">
        <div class="row justify-content-center">
            <div class="col">
                <div class="answers">{{a.title}}</div>                
            </div>
        </div>
    </div>
    <div class="col-6 text-center">
        <div class="row justify-content-center">
            <div class="col">
                <div class="answers">{{a.title}}</div>                
            </div>
        </div>
    </div>
</div>
{% endfor %}

显然,它没有按我的意愿加载项目。我怎样才能做到这一点?很感谢任何形式的帮助! :)

+一些其他代码以获取更多信息:
视图.py

def qandaSquare(request, pk):
    answers = Answer.objects.filter(authuser=request.user.id, question_number=pk)
    
    context = {
        'answers' : answers,
    }
    return render(request, 'main/square.html', context)

【问题讨论】:

  • 那么它现在给出了什么?

标签: django


【解决方案1】:

试试:

<div class="row justify-content-center">
{% for a in answers %}
    <div class="col-6 text-center">
        <div class="row justify-content-center">
            <div class="col">
                <div class="answers">{{a.title}}</div>                
            </div>
        </div>
    </div>
    {% if forloop.counter|divisibleby:2 %}
</div>
<div class="row justify-content-center">
    {% endif %}
{% endfor %}
</div>

参考:divisible_by | forloopcounter

【讨论】:

  • 非常感谢。它几乎可以工作。我之所以说“几乎”是因为当项目数为奇数时,最后一个位于模板的中间。我希望它在左栏中。请问有什么建议吗?
  • 那是因为你使用的是justify-content
  • 哇,现在完美运行。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 2021-05-19
  • 1970-01-01
  • 2011-07-07
  • 2021-05-29
相关资源
最近更新 更多