我在我的zoom.变量中的views.py中得到了一个MultiValueDictKeyError。当我删除缩放变量时,错误落在变量下面。所以我可以假设这只会跟随其他变量的套件。什么是MultiValueDictKeyError以及如何防止它们?
views.py
def getMarkers(request):
query = request.GET
zoom = query.__getitem__('zoom')
fromlat = query.__getitem__('fromlat')
tolat = query.__getitem__('tolat')
fromlng = query.__getitem__('fromlng')
tolng = query.__getitem__('tolng')
querystring = coordinate.objects.filter(lat__gt=fromlat) .filter(lat__lt = tolat).filter(lon__gt = fromlng).filter(lon__lt = tolng).filer(zoom_gt=zoom)
data = serializers.serialize("json", coordinate.objects.all())
return HttpResponse(data)
models.py
class coordinate(models.Model):
name = models.CharField(max_length=30)
lat = models.DecimalField(max_digits=10, decimal_places=7)
lon = models.DecimalField(max_digits=10, decimal_places=7)
zoom = models.IntegerField(default=15)
答案 0 :(得分:1)
x.__getitem__(y) == x[y]
所以如果 y 不在 GET 响应中,python会引发 KeyError
使用 get()方法而非直接访问,它会返回无(或由默认 kwarg设置的任何内容)而不是 KeyError异常强>
zoom = request.GET.get('zoom')
或
query = request.GET
zoom = query.get('zoom')