Я пытаюсь передать массив Javascript в мои представления Django. Это работает, но я хотел бы манипулировать этими данными и отображать их в отдельном URL-адресе. Поэтому у меня есть страница продуктов, на которой вы выбираете элементы. Когда форма отправлена, этот браузер называюсь, и я хочу, чтобы перенаправить на страницу корзины:Перенаправление на новую страницу после получения данных из 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))
Как и в закомментированном HTTPResponse линии, я необходимо передать данные в мой cart.html (это будут объекты из одной из моих моделей). Я не знаю, как передавать данные на мою страницу.
Линия print(chosen, file=sys.stderr)
была весьма полезна. Раньше, когда у меня был код, который использовал прокомментированные строки HttpResponse, он печатал на моем терминале как нужный массив, так и пустой. Однако с этим новым кодом искомый массив распечатывается, но он не перенаправляется на новую страницу. Я не уверен, почему это происходит, но я знаю, что пустой массив, напечатанный в моей предыдущей попытке, означал, что моя страница с корзиной не получала правильные данные массива.
Edit: Мне нужно передать объекты модели на новую HTML-страницу, которая (от того, что я знаю) я не могу сделать с помощью JavaScript
index.html
<form id="getArr" method="POST">
{% csrf_token %}
<button type='submit' id="checkCart">Check Added Items</button>
</form>
Вы можете использовать визуализацию. Сначала импортируйте его из django.shortcuts import redirect, render, а затем вы можете 'return render (request, 'cart.html.html', context)'. – kapilsdv
Возможный дубликат [Как сделать перенаправление страницы с помощью jQuery?] (Http://stackoverflow.com/questions/503093/how-can-i-make-a-page-redirect-using-jquery) – lorond
Я пробовал используя 'window.location.href', но мне нужна страница для перенаправления из django, так как я хочу передать объектам модели на страницу. Кроме того, использование «render» дало мне тот же результат. – lena