【问题标题】:How to pass a list from template( html) to view in Django?如何从模板(html)传递列表以在 Django 中查看?
【发布时间】:2020-03-27 18:51:50
【问题描述】:

如何从模板(html)传递一个列表以在 Django 中查看? 我需要使用 url 将列表从模板传递到视图

<div class="media-option btn-group shaded-icon">
      {% with uplist=group_list %}
          <button class="btn btn-small" id="button2">
                <a href="{% url 'upload_all_to_group' uplist %}">
                    <i class="icon-plus">Proceed</i>
                </a>
           </button>
       {% endwith %}
</div>

这里uplist是一个列表,我需要将它传递给视图函数(upload_all_to_group)。

另一个问题是,如何在urls.py中指定进行请求匹配。

url(r'^auth_app/upload_all_to_group/(?P<uplist>(.*))/$',
views.upload_all_to_group, name="upload_all_to_group"),

我试过这个方法。但它不起作用。

IndexError at /auth_app/auth_app/upload_all_to_group/[['user1',
'RND1', '17-11-2019', 'cc'], ['user3', 'RND2', '08-02-2018', 'ncv'],
['user1', 'group1', '02-02-2018', 'sf'], ['user23', 'RND3',
'16-12-2019', 'der'], ['user2', 'RND3', '25-06-2018', 'ddd']]/

这是错误,同时推动这个方法。如何处理 url 模式中的列表并查看?

提前致谢!

【问题讨论】:

  • 列表中的每个项目是否有任何唯一值(如 id) - 这样您只需传递 ID?
  • 你为什么不使用post请求,你可以在请求正文中传递任何东西?
  • 可以只做一个 api 来接受 POST 请求并在 AJAX 中发送列表
  • group_list 来自哪里?
  • 列表中的数据来自 CSV,从视图中处理并在模板中列出。我需要将过滤后的数据从模板传递到视图以执行某些操作

标签: python django django-forms django-templates django-views


【解决方案1】:

您的视图将收到string 的列表,而不是list。您需要将列表的string 表示形式转换为list

在你看来,

uplist = self.kwargs.get("uplist")
print type(uplist)  # str

uplist_list = eval(uplist)
print type(uplist_list)  # list

使用uplist_list 而不是uplist 来访问您的列表。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2014-09-15
    • 2019-03-28
    • 2015-03-07
    • 1970-01-01
    相关资源
    最近更新 更多