1
Info:私はpython 3.6とDjango 1.10.6を使用しています。Jqueryは空のデータをDjangoに送ります
私はページの数を変更する簡単なdictを送信しようとしますが、私はフォームを使用しません。だから私は彼らがXMLHttpRequest
とそれの仕事を使用して多くのチュートリアルを読む。しかし、私の状況では、私は空のクエリを受け取ります。
Template.html:
<p> You select the page {{ page }} </p>
<ul class="pagination" >
<li><a href="#" value={{ page|add:"-1" }}>«</a></li>
<li><a href="#" value=0>1</a></li>
<li><a href="#" value=1>2</a></li>
<li><a href="#" value=2>3</a></li>
<li><a href="#" value=3>4</a></li>
<li><a href="#" value=4>5</a></li>
<li><a href="#" value={{ page|add:"1" }}>»</a></li>
</ul>
<script language="javascript">
$('ul.pagination li a').on('click', function(e){
e.preventDefault();
var val = {
'page': $(this).attr('value'),
}
var page = new XMLHttpRequest();
xhr.open('POST', '/index/', true);
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xhr.setRequestHeader('X-CSRFToken', '{{ csrf_token }}');
xhr.send(val);
})
</script>
Views.py:私は常に空のクエリを持っている私のコンソールを表示し、それは通常のpage=0
だ
def index(request):
page = request.POST.get('page', 0) #POST ARE YOU HERE ?
print('[TEST]', request.POST, page)
return render(request, "site/index.html",
{'page': page})
。
コンソールログ:私は{'page':'1'}
のような辞書は、上のクリックで送信受信する
[TEST] <QueryDict: {}> 0
a
それは辞書のように送られたデータをフォーマットすることが可能ですか? – Buky
何かが可能ですが、送信する必要のあるフォーマットは、モデルバインダーが期待しているものによって異なります。 –
JSONは完璧です。 – Buky