JQueryPOSTで次の試みをしました。
$(document).ready(function(){
$("#id_go").click(function(){
GOclick();
});
});
function GOclick(){
selected_table = $("#id_TableName option:selected").text();
selected_column = $("#id_ColumnName option:selected").text();
selected_SDT = $("#id_StartDateTime option:selected").text();
selected_EDT = $("#id_EndDateTime option:selected").text();
$.post("/historicaldata/input_parameters/", { selected_table: selected_table, selected_column: selected_column, selected_SDT: selected_SDT, selected_EDT: selected_EDT }, function(data){
});
}
そしてDjangoView.py
if request.method == "POST":
pdb.set_trace()
selectedTable = request.GET.get("selected_table")
selectedColumn = request.GET.get("selected_column")
startDT = request.GET.get("selected_SDT")
endDT = request.GET.get("selected_EDT")
同じスクリプトから同じビューに移動する同等のGETが成功しているので、なぜそうなるのかわかりません。フォームにcrsf_tokenがあります。
回答:
回答№1は1一見すると、間違ったQueryDictからパラメータを取得しようとしていますが、次のようになります。
request.POST.get(...)
回答№2の場合は1
djangoサーバーに投稿されたフォームを操作するときは、送信する「フォーム」または「フォームデータ」内にcsrf_tokenがあることを確認する必要があります。
フォームのcsrfトークンを表示するには
{{csrf_token}}
これは次のようなものを作成します
<input type="hidden" name="csrfmiddlewaretoken" value="$csrf_token"/>
これをAJAX呼び出しで他のデータと一緒に渡し、jqueryを使用して、フォームの名前と入力の「名前」の名前に基づいて値を取得します。
お役に立てれば。