使用django模板将数据json传递到前端(html)

时间:2016-08-01 09:22:39

标签: html json django

我有一个问题是使用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>

1 个答案:

答案 0 :(得分:1)

您将错误的上下文传递给模板(或者您在模板中使用了错误的变量)

尝试类似(在视图中):

return render(request, your_template, {"tasks": tasks_new_v_new})

在模板中:

{% for task in tasks %}
  {{ task }}
{% endfor %}

请注意我将名为tasks的变量传递给模板,并在模板中传递该变量。

希望这有帮助