返さないI次のAjax POST呼び出しがあります。ジャンゴ - AJAXポストコールデータを使用してフィルタリングするオブジェクトが何も
:$.ajax({
type: "POST",
url: "{% url 'meds:prescription' %}",
data: {selected:'selected' , csrfmiddlewaretoken: "{{ csrf_token }}"},
success: function(result) {
window.location = "{% url 'meds:prescription' %}";
}
});
選択例[5, 9, 17]
のIDの配列と、以下の図であり、
class PrescriptionView(generic.ListView):
template_name = 'meds/prescription.html'
context_object_name = 'meds'
model = Medicament
def post(self, request, **kwargs):
selected_ids = self.request.POST.getlist('selected[]')
meds = self.get_queryset().filter(id__in=selected_ids)
return render(request, self.template_name, {'meds': meds})
def get_queryset(self):
ids = self.request.POST.getlist('selected[]')
return Medicament.objects.filter(id__in=ids)
def get_context_data(self, **kwargs):
ids = self.request.POST.getlist('selected[]')
context = super(PrescriptionView, self).get_context_data(**kwargs)
context.update({
'meds': Medicament.objects.filter(id__in=ids),
'date': datetime.now()
})
return context
は私がやろうとしていることは、単にポストコールからのデータを用いて濾過オブジェクトと処方箋テンプレートにリダイレクトされるが、代わりに私のtemplat私は間違って何をしているのか分かりません。
まず、あなたは、配列、 '「選択」'、文字列を送信することがないように見えます。第2に、ビューでは、何らかの理由で 'selected []'の値を取得しようとしています。 –