在django中传递数据视图模板视图

时间:2015-07-29 14:05:19

标签: python django django-templates django-views

我在我的项目中处理输入文件并将处理过的文本传递给另一个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}}值来查看? THX。

1 个答案:

答案 0 :(得分:1)

您可以使用隐藏的输入字段传递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)