テンプレートファイルにいくつかのチェックボックスフィールドがあります。チェックされた値はビューファイルに送信する必要があります。私はページの再読み込みを防ぐためにajaxを使用しました。これらのデータをバックエンド(views.py)に送信する方法は?djangoでajaxを使ってテンプレートファイルからデータを受け取る方法は?
マイテンプレートファイル、
<script type="text/javascript">
$(document).ready(function() {
$("#myform").submit(function(event) {
event.preventDefault();
var category = [];
$('input[type="checkbox"]:checked').each(function(i){
category[i] = $(this).val();
});
$.ajax({
url :'/welcome_user/',
type : "GET",
data : {
category_name : category,
},
success : function() {
console.log('Success');
},
error : function() {
console.log('Failure');
}
});
})
});
</script>
</head>
<body>
<form id="myform">
<p>Categories</p>
{% for i in My_Cat %}
<input id="category_id" name="category_name" type="checkbox"
value="{{i.category}}" >{{i.category}}<br>
{% endfor %}
<input id="submit" type="button" value="Go"/>
</form>
</body>
views.py、私はそれがit.Thisを認識していない2つのチェックボックスをチェックする任意のerror.Ifを取得していない午前
def welcome_user(request):
categories = Add_cat.objects.all()
if 'category_name' not in request.GET:
my_products = Add_prod.objects.all()
context = {
"My_Cat":categories,
"products":my_products
}
if request.is_ajax():
print "Hello world"
print request.GET.get('category_name') #getting undefined
if 'category_name' in request.GET:
filter_category = request.GET.getlist('category_name')
my_products = Add_prod.objects.filter(cat__category__in = filter_category)
context = {
"My_Cat":categories,
"products":my_products
}
return render(request,"welcome-user.html",context)
は、私が見たものです私のコンソール。
"GET /welcome_user/?category_name%5B%5D=Economics&category_name%5B%5D=Kids HTTP/1.1" 200 5743
ビューファイルで何かを変更する必要がありますか? – Bhanukiran
はい、回答を更新します – dnaranjo
チュートリアルでは、データの保存と送信にjsonを使用しています。私はajaxを使用したい場合、ビューファイルでjsonを強制的に使用しますか? – Bhanukiran