Python Django-使用ajax调用后数据过滤对象不会返回任何结果

Python Django-使用ajax调用后数据过滤对象不会返回任何结果,python,ajax,django,Python,Ajax,Django,我有以下Ajax POST调用: $.ajax({ type: "POST", url: "{% url 'meds:prescription' %}", data: {selected:'selected' , csrfmiddlewaretoken: "{{ csrf_token }}"}, success: function(result) { window.location = "{% url 'meds:prescription' %}"

我有以下Ajax POST调用:

$.ajax({
    type: "POST",
    url: "{% url 'meds:prescription' %}",
    data: {selected:'selected' , csrfmiddlewaretoken: "{{ csrf_token }}"},
    success: function(result) {
        window.location = "{% url 'meds:prescription' %}";
    }
});
其中选择的是ID数组,例如
[5、9、17]

以及以下观点:

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

我试图做的只是重定向到处方模板,使用post调用中的数据过滤对象,但我的模板只是空的,我不确定我做错了什么。

您发送的是一个字符串
selected:“selected”
不是数组。在ajax处理程序中删除所选
周围的单引号:

data: {selected:'selected' , csrfmiddlewaretoken: "{{ csrf_token }}"},
应该是:

data: {selected: selected, csrfmiddlewaretoken: "{{ csrf_token }}"},

首先,您似乎在发送一个字符串,
“selected”
,而不是一个数组。其次,在视图中,出于某种原因,您试图获取
selected[]
的值。我也尝试过,但它似乎也不起作用,没有结果!您是否也尝试过使用
self.request.POST.getlist('selected[])更改
self.request.POST.getlist('selected')
?回顾您的代码,您的代码中存在一些严重的缺陷。为什么要刷新ajax调用的
success
window.location=“{%url'meds:prescription%}”?为什么不从视图返回JSON响应?是的,我也尝试过。我之所以在成功时重定向,是因为我希望将数据显示在与我发送数据的页面不同的页面中。我不知道您希望如何实现这一点,您的帖子数据将在刷新时丢失。