Html 发布表单数据,然后呈现新模板

Html 发布表单数据,然后呈现新模板,html,django,forms,post,Html,Django,Forms,Post,因此,我的HTML中有一个表单如下所示: <form id="passer" method="POST" action="{% url 'Sizer:printView' %}"> {% csrf_token %} <input type="hidden" id="vals"> <input type="submit" value="Print all selected items" id="printBut"> </form&g

因此,我的HTML中有一个表单如下所示:

<form id="passer" method="POST" action="{% url 'Sizer:printView' %}">
    {% csrf_token %}
    <input type="hidden" id="vals">
    <input type="submit" value="Print all selected items" id="printBut">
</form>
def printView(request):
    to_print = str(request.POST.get('vals'))
    template = "Sizer/printview.html"
    context = {'to_print':to_print}
    return redirect('requested_print_data', to_print)
def requested_print_data(request):
    all_data['to_print'] =       #Dont know how to get my variable 

    template = "Sizer/printdata.html"
    context = {'all_data':all_data}
    return render(request, template, context)
我请求的打印数据视图(我要在其中呈现新模板)如下所示:

<form id="passer" method="POST" action="{% url 'Sizer:printView' %}">
    {% csrf_token %}
    <input type="hidden" id="vals">
    <input type="submit" value="Print all selected items" id="printBut">
</form>
def printView(request):
    to_print = str(request.POST.get('vals'))
    template = "Sizer/printview.html"
    context = {'to_print':to_print}
    return redirect('requested_print_data', to_print)
def requested_print_data(request):
    all_data['to_print'] =       #Dont know how to get my variable 

    template = "Sizer/printdata.html"
    context = {'all_data':all_data}
    return render(request, template, context)
因此,在表单提交时,计算值并存储到表单中,URL将从发布位置获得额外的部分(www.example.com/printables--On submit->www.example.com/printables/printview/),但模板将保持不变

我已经被困在这个一两天了,所以任何帮助都将不胜感激

按要求编辑:jQuery:

$('#passer').submit(function(){
    console.log("Inside click");
    var selected = [];
    var $vals = "";
    $('.datatable').find('input[type="checkbox"]:checked').each(function(){
            selected.push($(this).attr('value'));
    });
    $.each(selected, function(index, val){
        $vals+= val + ',';
    });
    console.log($vals)

    $("#vals").val($vals)

可以在printView本身中渲染输出。无需编写其他视图。将printView更改为

def printView(request):
    to_print = str(request.POST.get('vals'))
    template = "Sizer/printdata.html"
    context = {'all_data':to_print}
    return render(request, template, context)

你应该读整页。另外,如果要在另一个视图中获取发布的数据,则需要一个模型或将其存储在会话中,然后在下一个视图中检索。@cdvv7788谢谢,我现在就通读一遍。它不必转到另一个视图,我的目标是将jQuery计算的数据放到另一个模板中,这样我就可以用它呈现一些数据。有人告诉我,如果没有模型和会话(这是我想要避免的),这是可能的。谢谢你的回答,但是这并不能解决我的问题。我仍在更改URL(更改为正确的URL),但它加载了相同的模板,并忽略了视图中声明的模板。@J.scul您可以粘贴您使用的jquery代码吗?为什么?因为如果数据正确发布到新视图,并且我已更改了模板,如果
Sizer/printdata.html
Sizer/printview.html
不同,则应正确呈现新数据。在问题中添加了jQuery,printview的用途是什么?我可以看到视图没有做任何新的功能,它只是将发布的数据返回到新请求的打印数据。一个用户告诉我将其提交到一个视图,然后重定向到另一个视图并从那里呈现模板。我不同意,但我已经同意了。只要满足将jQuery中计算的数据放入printdata.html模板的要求,我就不介意删除其他函数!