0
У меня есть скрытая форма в шаблоне Dajngo (1.10) и вы хотите передать данные в views.py. Я следовал обычным способом, но результат получения данных - ничто. Не могли бы вы посоветовать, что пошло не так, и как это исправить? Большое спасибо. Код, как показано ниже для справки:Django Views Получить данные POST
шаблона:
<form style="display: hidden" action="/exRpt/" method="POST" id="#form99">
{% csrf_token %}
<input type="hidden" id="var199" name="var199" value=""/>
<input type="hidden" id="var299" name="var299" value=""/>
</form>
<script>
$(document).on('click', '.exWord', function(){
$("#var199").val("ExWord");
$("#var299").val("1,4,10");
$("#form99").submit();
window.location.href = "/exRpt/"
});
</script>
views.py:
def exRpt(request):
in_type = request.POST.get('var199')
in_news = request.POST.get('var299')
...
response = HttpResponse(f.getvalue(), content_type='application/vnd.ms-word')
response['Content-Disposition'] = 'attachment; filename=SelectedNewsReport.docx'
return response
Я думаю, что ваш скрипт не выполняется в этом коде, поэтому форма не получает эти значения. –
Вы не должны включать '#' в идентификатор формы: '
@Alasdair прав. Ваш JS-код не выбирает форму, поэтому вы не отправляете на просмотр. Это запрос на получение (из вашего оператора 'window.location.href', который вам не нужен, если подача работает правильно). Для подтверждения вы можете распечатать 'request.method' в своей функции просмотра. Обновите идентификатор, упомянутый @alasdair, и он должен работать правильно. – sundance