0
我使用AJAX後調用一組數據發送到我的觀點如下:Django的 - AttributeError的在/藥方/「PrescriptionView」對象有沒有屬性「object_list中」
class PrescriptionView(generic.ListView):
template_name = 'meds/prescription.html'
context_object_name = 'meds'
model = Medicament
def post(self, request, **kwargs):
selected_ids = request.POST.getlist('selected[]')
context = {'meds': Medicament.objects.filter(id__in=selected_ids)}
return super(PrescriptionView, self).render_to_response(context)
,你可以看到我的看法是一個ListView,我要的是要列出與IDS的那些對象從它Medicament.objects.filter(id__in=selected_ids)
,但由於某種原因,我不斷收到以下錯誤selected_ids:
AttributeError at /prescription/
'PrescriptionView' object has no attribute 'object_list'
Traceback:
File "/home/nids/cabin/dentist/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "/home/nids/cabin/dentist/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/nids/cabin/dentist/lib/python3.5/site-packages/django/views/generic/base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "/home/nids/cabin/dentist/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch
88. return handler(request, *args, **kwargs)
File "/home/nids/cabin/meds/views.py" in post
38. return super(PrescriptionView, self).render_to_response(context)
File "/home/nids/cabin/dentist/lib/python3.5/site-packages/django/views/generic/base.py" in render_to_response
132. template=self.get_template_names(),
File "/home/nids/cabin/dentist/lib/python3.5/site-packages/django/views/generic/list.py" in get_template_names
200. if hasattr(self.object_list, 'model'):
Exception Type: AttributeError at /prescription/
Exception Value: 'PrescriptionView' object has no attribute 'object_list'
編輯
Ajax調用:
jQuery(document).ready(function($) {
$("#continue").click(function() {
var selected = $("#meds").bootgrid("getSelectedRows");
console.log(selected);
$.ajax({
type: "POST",
url: "{% url 'meds:prescription' %}",
data: {selected:'selected' , csrfmiddlewaretoken: "{{ csrf_token }}"},
success: function(result) {
$('#message').html("<h2>Contact Form Submitted!</h2>")
}
});
});
});
注意:選擇是一個數組
我只是把它添加到後 – Meryem
望着文檔:https://docs.djangoproject.com/en/1.10/topics/class-based-views/generic -display /#making-friendly-template-contexts,我沒有看到任何錯誤。但是,我想看看你是如何渲染你的列表。你正在循環模板中的「藥物」,對嗎? –
我已經修改了上面的處理請求: 'def'post(self,request,** kwargs): selected_ids = request.POST.getlist('selected []') meds = self.get_queryset ().filter(id__in = selected_ids) return render(request,self.template_name,{'meds':meds})''' –