は、だから私はこのようになります私のHTMLのフォーム持つ新しいテンプレートをレンダリング:submitボタンがクリックされたときに、私が達成したいものをこのフォームでポストフォームデータは、その後
<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>
をである私のjQueryを計算します値を計算し、フォームのvalsフィールドに入力してから、printViewビューに(計算されたデータをビューに取得するために)ポストしてから、データがポストされたら新しいテンプレートをレンダリングし、 jQuery。
(データが掲載されている)私のprintViewは次のようになります。
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)
と(私は私の新しいテンプレートをレンダリングしたい)私のrequested_print_dataビューは次のようになります。
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/)、テンプレートは同じままです。
私はこれで1日か2日間これに執着していますので、どんな助けでも大歓迎です!
EDIT: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)
このページ全体を読む必要があります。https://docs.djangoproject.com/ja/1.10/topics/forms/また、投稿されたデータを別のビューで取得したい場合は、モデルが必要であるか、セッションに保存して、次のビューで取得する必要があります。 – cdvv7788
@ cdvv7788ありがとう、私は今読んでいます。他のビューに移動する必要はありません。私の目標は、jQueryによって計算されたデータを別のテンプレートに取得して、データをレンダリングできるようにすることです。私はそれがモデルとセッションなしで可能であると言われました(これは私が避けたかったものです) –