我是dJango的新手。
我想要的是将数据从view.py
传递到.html
以便处理来自模型的数据。
但是,我很难将数据从view
传递到html
页面。我的代码如下所示。
form.html
<!DOCTYPE html>
<meta charset="utf-8">
{% load staticfiles %}
<form method="post" action="../form/" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="files" multiple/>
<input type="submit" value="Upload"/>
</form>
<form method="post" action="../form/" enctype="multipart/form-data">
{% csrf_token %}
{% for c in column_name %}
<tbody>
<tr>
<td>{{c}}</td>
<td><input type="checkbox" name="columns" value="{{c}}"></td>
</tr>
</tbody>
{% endfor %}
{% if column_name %}
<input type="submit" value="Submit">
{% endif %}
</form>
<script>
var data = {{ columns_dict|safe }};
console.log(data);
</script>
views.py
def Form(request):
if request.method == 'POST':
if len(request.FILES) !=0:
file = request.FILES['files']
column_name = upload_file_name(file)
return render(request,"index/form.html",{"column_name":column_name})
else:
columns = request.POST.getlist('columns')
print(columns)
columns_dict = dict(columns)
print(columns_dict)
return render(request,"index/form.html",json.dumps(columns))
else:
return render(request,"index/form.html",{})
如您所见,我一直在尝试在下面的代码中传递数据。
return render(request,"index/form.html",json.dumps(columns))
但是,在html页面中,脚本块
<script>
var data = {{ columns_dict|safe }};
console.log(data);
</script>
它无法显示来自view.py
的数据。
我可以在下面看到错误。
context must be a dict rather than str.
如何解决我的问题?
答案 0 :(得分:2)
如果要在模板中从视图传递数据,则必须在字典中传递数据。
def my_view(request):
# statements
return render('myhtml.html', {'data': json.dumps(data)})