MultiValueDictKeyError

MultiValueDictKeyError

我在我的zoom变量的views.py中遇到了MultiValueDictKeyError。当我删除zoom变量时,错误就落在它下面的变量上。因此,我可以假定这将仅适用于其余变量。什么是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)

最佳答案

x.__getitem__(y) == x[y]


因此,如果y不在GET响应中,则python引发KeyError

使用get()方法代替直接访问,它返回None(或默认设置为kwarg的任何值)代替KeyError

zoom = request.GET.get('zoom')


要么

query = request.GET
zoom = query.get('zoom')

关于python - Django MultiValueDictKeyError什么时候发生?如何避免?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30406888/

10-12 12:38
查看更多