在 Django 中传递数据视图模板视图
Passing data view-template-view in django
我正在我的项目中处理输入文件,并将处理后的文本传递给另一个 html 以供用户批准
def vm_to_csv_upload(request):
if request.method == "POST":
some code here
br_work_string = re.sub('\n', '<br>', work_string)
page_text = 'Here\'s what gonna be uploaded to crowdin:<br><br><br>' + br_work_string + '<br><br><br>Is that okay?'
return render(request, 'upload_crowdin_check.html', {'page_text': page_text, 'csv_text': work_string})
在此页面上我显示传递的数据:
<body>
<div id="text_check">
{% autoescape off %}
{{ page_text }}
{% endautoescape %}
</div>
<form action="/crowdin_approve/" method="POST" value={{ csv_text }} id="csv">
{% csrf_token %}
<input type="submit" class="btn btn-xs btn-danger" value="Okay">
</form>
</body>
并尝试将其传递给另一个视图以再次处理它。
def crowdin_approve(request):
if request.method == "POST":
return HttpResponse(request.POST)
else:
return HttpResponse('nope')
但我唯一得到的是 csrfmiddlewaretoken。我究竟做错了什么?我应该如何传递 {{ csv_text }} 值来查看?谢谢
您可以使用隐藏输入字段传递 csv_text
的内容:
<form action="/crowdin_approve/" method="POST" id="csv">
{% csrf_token %}
<input type="hidden" name="csv_text" value="{{ csv_text }}">
<input type="submit" class="btn btn-xs btn-danger" value="Okay">
</form>
然后就可以在视图中这样访问了:
def crowdin_approve(request):
if request.method == "POST":
csv_text = request.POST.get('csv_text', None)
我正在我的项目中处理输入文件,并将处理后的文本传递给另一个 html 以供用户批准
def vm_to_csv_upload(request):
if request.method == "POST":
some code here
br_work_string = re.sub('\n', '<br>', work_string)
page_text = 'Here\'s what gonna be uploaded to crowdin:<br><br><br>' + br_work_string + '<br><br><br>Is that okay?'
return render(request, 'upload_crowdin_check.html', {'page_text': page_text, 'csv_text': work_string})
在此页面上我显示传递的数据:
<body>
<div id="text_check">
{% autoescape off %}
{{ page_text }}
{% endautoescape %}
</div>
<form action="/crowdin_approve/" method="POST" value={{ csv_text }} id="csv">
{% csrf_token %}
<input type="submit" class="btn btn-xs btn-danger" value="Okay">
</form>
</body>
并尝试将其传递给另一个视图以再次处理它。
def crowdin_approve(request):
if request.method == "POST":
return HttpResponse(request.POST)
else:
return HttpResponse('nope')
但我唯一得到的是 csrfmiddlewaretoken。我究竟做错了什么?我应该如何传递 {{ csv_text }} 值来查看?谢谢
您可以使用隐藏输入字段传递 csv_text
的内容:
<form action="/crowdin_approve/" method="POST" id="csv">
{% csrf_token %}
<input type="hidden" name="csv_text" value="{{ csv_text }}">
<input type="submit" class="btn btn-xs btn-danger" value="Okay">
</form>
然后就可以在视图中这样访问了:
def crowdin_approve(request):
if request.method == "POST":
csv_text = request.POST.get('csv_text', None)