切片字符串并将其作为列表存储在HTML文件中的django python中

时间:2018-04-07 20:48:20

标签: python html django python-3.x

我将一个变量 names =“['name1','name2','name3']”作为String发送到我在views.py中的方法的HTML文件以及其他信息。

当我尝试将字符串名称 names.split()分开时:

{% for name in names.split(',') %}
 {{ name }}
{% endfor %}

然后我面对这个TemplateSyntaxError

  

无法解析余数:'(',')'来自   'share.share_per_person.split(', ')'

当我尝试将字符串打印为

{{ names }}

然后输出      ['name1','name2','name3']

我想在屏幕上显示个人姓名。

1 个答案:

答案 0 :(得分:0)

在视图中使用类似以下内容的方法,使用abstract syntax tree方法literal_eval将数据库中的字符串转换为正确的列表。

from django.shortcuts import render
import ast

def sample_request(request):

    names = "['name1', 'name2', 'name3']"

    # abstract syntax tree
    # https://docs.python.org/3.6/library/ast.html
    names_list = ast.literal_eval(names)

    context = {'names': names_list,
               'some_other_var': 'value',
               }
    return render(request, 'dashboard/index.html', context)

然后在你的模板中你应该能够做到正常 {% for name in names %} {{ name }}<br /> {% endfor %} 归功于https://stackoverflow.com/a/1894293/4872140