Django:用于渲染的 Elif 语法
Django: Elif syntax for rendering
我有一个模板,允许我在客户搜索和事件搜索之间来回切换(结果显示在地图上)。
但是,我似乎无法让他们一起工作!
class MapView(TemplateView):
template_name = "index.html"
def post(self, request, *args, **kwargs):
if request.POST['customer_search']:
self.object = CustomerAccount.objects.search(request.POST['customer_search'])
return HttpResponse(serialize('geojson',self.object), content_type="application/json")
elif request.POST['event_search']:
self.object = Event.objects.search(request.POST['event_search'])
return HttpResponse(serialize('geojson',self.object), content_type="application/json")
else:
raise SuspiciousOperation("Blank Request Received")
在这种情况下,当我尝试执行 'event search' 时,浏览器控制台 returns 出现以下错误:
500: MultiValueDictKeyError at /discover/
"'customer_search'"
如果我颠倒这些(将事件放在 if 上,将客户放在 elif 上),那么当我尝试 运行 a 'customer search':
时我会得到相反的结果
500: MultiValueDictKeyError at /discover/
"'event_search'"
我哪里错了?
尝试:
request.POST.get('event_search', False)
request.POST.get('customer_search', False)
而不是:
request.POST['customer_search']
request.POST['event_search']
在这两种情况下。
我有一个模板,允许我在客户搜索和事件搜索之间来回切换(结果显示在地图上)。
但是,我似乎无法让他们一起工作!
class MapView(TemplateView):
template_name = "index.html"
def post(self, request, *args, **kwargs):
if request.POST['customer_search']:
self.object = CustomerAccount.objects.search(request.POST['customer_search'])
return HttpResponse(serialize('geojson',self.object), content_type="application/json")
elif request.POST['event_search']:
self.object = Event.objects.search(request.POST['event_search'])
return HttpResponse(serialize('geojson',self.object), content_type="application/json")
else:
raise SuspiciousOperation("Blank Request Received")
在这种情况下,当我尝试执行 'event search' 时,浏览器控制台 returns 出现以下错误:
500: MultiValueDictKeyError at /discover/
"'customer_search'"
如果我颠倒这些(将事件放在 if 上,将客户放在 elif 上),那么当我尝试 运行 a 'customer search':
时我会得到相反的结果500: MultiValueDictKeyError at /discover/
"'event_search'"
我哪里错了?
尝试:
request.POST.get('event_search', False)
request.POST.get('customer_search', False)
而不是:
request.POST['customer_search']
request.POST['event_search']
在这两种情况下。