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']

在这两种情况下。