Javascript配列をDjangoビューに渡そうとしています。これは動作しますが、そのデータを操作して別のURLに表示したいと思います。だから私はあなたがアイテムを選択する製品ページを持っています。フォームが送信されると、このJavaScriptはと呼ばれ、私はそれは、カートのページにリダイレクトしたいされていますのHttpResponseコメントアウト行でJavascriptからデータを受け取った後に新しいページにリダイレクト
$("#getArr").submit(function(){
var data = {'ab[]' : chosen};
$.post('cart/', data, function(response){
if(response == 'success'){
window.location.href="cart/" // references my views
}
else{
alert('Error! :(');
}
});
});
views.py
def cart(request):
if request.method == 'POST':
chosen = request.POST.getlist('ab[]')
print(chosen, file=sys.stderr)
template = loader.get_template('o/cart.html')
context = {'prodChosen': chosen,
'e': "hy"}
return HttpResponse('success')
# return HttpResponse(template.render(context, request))
else:
template = loader.get_template('o/cart.html')
context = {}
return HttpRepsonse('fail')
# return HttpResponse(template.render(context, request))
のように、私は私のcart.htmlにデータを渡す必要があります(これは私のモデルのオブジェクトです)。カートのページにデータを渡す方法がわかりません。
print(chosen, file=sys.stderr)
という行は非常に便利です。 以前は、コメントアウトされた戻りのHttpResponse行を使用したコードがあったときに、目的の配列と空の配列の両方を端末に出力しました。しかし、この新しいコードでは、目的の配列が印刷されますが、新しいページにはリダイレクトされません。私はなぜこれが起こっているのか分かりませんが、私の以前の試みでも空の配列が印刷されたという事実は、カートのページが正しい配列データを受け取っていないことを意味しています。
編集:私は、私は場合、私はjavascriptの
index.htmlを
<form id="getArr" method="POST">
{% csrf_token %}
<button type='submit' id="checkCart">Check Added Items</button>
</form>
あなたはレンダリングを使用することができます。最初にdjango.shortcutsインポートリダイレクトからレンダリングしてレンダリングし、レンダリング(request、 'cart.html.html'、コンテキスト)を返すことができます。 – kapilsdv
[jQueryを使用してページをリダイレクトする方法はありますか?](http://stackoverflow.com/questions/503093/how-can-i-make-a-page-redirect-using-jquery) – lorond
'window.location.href'を使用していますが、モデルオブジェクトをページに渡したいので、私はdjangoからリダイレクトするページが必要です。また、 'render'を使うと同じ結果が得られました。 – lena