我有一个问题是使用django模板将json数据发送到前面(html)。
这是python代码:
@api_view(['GET'])
@renderer_classes((JSONRenderer,))
def tasks_list_all(request):
i = inspect()
tasks_dic=i.registered_tasks()
for cle in tasks_dic.keys():
key=cle
tasks_old_v=tasks_dic.get(key)
tasks_new_v=[]
for tasks in tasks_old_v:
new_tasks=tasks.replace('infra_mngt.tasks.','')
tasks_new_v.append(new_tasks)
add_new=tasks_new_v[-1].replace('provisionning.celery.','')
tasks_new_v[-1]=add_new
tasks_new_v_new=json.dumps(tasks_new_v)
print "json.dumps(tasks_new_v)",tasks_new_v_new
#~ return render(request, os.path.join(settings.BASE_DIR, 'infra_mngt', 'templates', 'tasks_all.html'), context={'list':tasks_new_v})
#~ return render(request, os.path.join(settings.BASE_DIR, 'infra_mngt', 'templates', 'tasks_all.html'),{'list':tasks_new_v})
return render(request, os.path.join(settings.BASE_DIR, 'infra_mngt', 'templates', 'tasks_all.html'),{'list':tasks_new_v_new})
这是前面的代码(tasks_all.html):
<h1>Dynamic list tasks</h1>
{% for list in tasks_new_v_new %}
{{ list }}
{% endfor %}
但执行后,我没有得到我需要的列表中的任何元素,只显示这个HTML代码:
<h1>Dynamic list tasks</h1>
答案 0 :(得分:1)
您将错误的上下文传递给模板(或者您在模板中使用了错误的变量)
尝试类似(在视图中):
return render(request, your_template, {"tasks": tasks_new_v_new})
在模板中:
{% for task in tasks %}
{{ task }}
{% endfor %}
请注意我将名为tasks
的变量传递给模板,并在模板中传递该变量。
希望这有帮助