如何迭代 ListView 项目以转换为卡片

Posted

技术标签:

【中文标题】如何迭代 ListView 项目以转换为卡片【英文标题】:How to iterate a ListView items to convert in cards 【发布时间】:2022-01-17 00:46:55 【问题描述】:

我正在编写一个应用程序“破折号”如何成为许多用户的起点。 “应用程序仪表板”。我想转换卡片中的应用程序列表,“组合样式”。

用户登录平台,并在 url .../dash 中打开 dash(django app)。到这里就完美了。

使用通用视图 - ListView - 我们获得将在平台中可用的应用程序列表(如果模型中存在,它已安装并可供用户使用的应用程序)

urls.py:

path('dash/', views.ListView_Dash_Apps.as_view()),

views.py:

class ListView_Dash_Apps(ListView):
    template_name = "dash/ListarAplicaciones.html"
    model = App

而在html模板中,如何迭代object_list的列??? 有了这个我可以迭代行,但不是列,我收到模型中声明的 str 输出。

<ul>
    % for e in object_list %
        <li> e </li>
    % endfor %
</ul>

如果我可以读取列数据并包含在 html 中(应用程序、url_app、图标等)

【问题讨论】:

【参考方案1】:

在 HTML 中,列是 object_list 的方法。

在我的例子中,e.appcode、e.url 和 e.description

<ul>
    % for e in object_list %
        <li> e </li>
    % endfor %
</ul>

最后:

% for e in object_list %
    <div class="card" style="width: 18rem;">
        <img class="card-img-top" src="" >
        <div class="card-body">
            <h5 class="card-title">e.appname</h5>
            <p class="card-text">e.description</p>
            <a href= e.url  class="btn btn-primary">Abrir</a>
        </div>
        </div>
% endfor %

【讨论】:

以上是关于如何迭代 ListView 项目以转换为卡片的主要内容,如果未能解决你的问题,请参考以下文章

将卡片设置为 Listview

需要处理嵌套列表时如何将递归转换为迭代?

如何使用CursorAdapter将Filter设置为ListView?

ListView 中的项目得到它的高度

listview 不使用 setState 更新

如何从 ListView 获取项目并将这些项目转换为 ArrayList?