简体   繁体   English

在Django中传递数据view-template-view

[英]Passing data view-template-view in django

I'm handling input file in my project and passing processed text to another html for user approvement 我正在处理项目中的输入文件,并将处理后的文本传递给另一个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})

On this page i show passed data: 在此页面上,我显示传递的数据:

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

And trying to pass it to another view to process it again. 并尝试将其传递给另一个视图以再次对其进行处理。

def crowdin_approve(request):
    if request.method == "POST":
        return HttpResponse(request.POST)
    else:
        return HttpResponse('nope')

But only thing i get is csrfmiddlewaretoken. 但是我唯一得到的是csrfmiddlewaretoken。 What am i doing wrong? 我究竟做错了什么? How should i pass {{ csv_text }} value to view? 如何传递{{csv_text}}值进行查看? Thx. 谢谢。

You can pass the content of csv_text using an hidden input field: 您可以使用隐藏的输入字段传递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>

Then you can access it in the view this way: 然后,您可以通过以下方式在视图中访问它:

def crowdin_approve(request):
    if request.method == "POST":
        csv_text = request.POST.get('csv_text', None)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM