我可以在 Django 的两列模板中动态放置项目吗?

Posted

技术标签:

【中文标题】我可以在 Django 的两列模板中动态放置项目吗?【英文标题】:Can I dynamically place items in two-column template in 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)

【问题讨论】:

那么它现在给出了什么? 【参考方案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 哇,现在完美运行。非常感谢:)

以上是关于我可以在 Django 的两列模板中动态放置项目吗?的主要内容,如果未能解决你的问题,请参考以下文章

查询嵌套查询结果中的两列

Django auth:在哪里放置自定义模板?

如何在扩展另一个文件的 django 模板中使用带有动态内容的 html 块片段?

Django:为啥我放置在 Django Summernote 中的文本会在我的 HTML 模板中显示 HTML 标记?

在 Django 模板中迭代 Expando 的动态属性

Django 项目基础模板