在 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)