我将一个变量 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']
我想在屏幕上显示个人姓名。
答案 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