将逗号分隔的字符串转换为列表,然后在Django模板中显示列表

时间:2019-07-15 05:33:10

标签: python django list

我正在尝试使用逗号分隔的字符串值作为输入,将这些项目存储在列表中以供临时显示并在模板中使用。我目前在将每个逗号分隔的字符串值存储在列表中,然后在模板中显示该列表时遇到麻烦。

用户在数据库ModelForm字段中输入类似的内容(不带引号)

来自ModelForm的示例输入

inputs = models.CharField(max_length=200)

然后用户将输入一些效果,

“ length_ft,depth_in,width_in”

减去引号。

以下然后在模板中进行排序:

{% for i in inputs_list %}
    {{ i }}
{% endfor %}

它没有显示列表项列表,而是简单地分别列出每个列表项的每个字母。我知道为什么,因为我要去除逗号,但是随后我尝试将空白列表附加到每个csv项目中。

我不明白如何将输入字符串中的项目提取到列表中,然后显示在模板中。

views.py

def test_formula(request, formula_id):
    formula = Formula.objects.get(id=formula_id)
    inputs_list = []
    for inputs in formula.inputs:
        strip = inputs.strip(",")
        inputs_list.append(strip)

    context = {'formula': formula, 'inputs_list': inputs_list}
    return render(request, 'formulas/test_formula.html', context)

formulas / test_formula.html

(这只是将每个字符分解成自己的项目)

{% load static %}
{% block content %}

{% for i in inputs_list %}
{{ i }}
{% endfor %}


{% endblock content %}

formulas \ urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('test_formula/<int:formula_id>', views.test_formula, name='test_formula'),
]

1 个答案:

答案 0 :(得分:1)

假设您有一个用逗号分隔的字符串,例如"length_ft,depth_in,width_in",请将代码更新为:

def test_formula(request, formula_id):
    formula = Formula.objects.get(id=formula_id)

    context = {'formula': formula, 'inputs_list': formula.inputs.split(",")}
    return render(request, 'formulas/test_formula.html', context)

基本上,您需要我们使用str方法split,该方法使用您作为定界字符串传递的参数来返回字符串中单词的列表。

我还建议在模板的for中将变量i更改为input