[英]Django MultiValueDictKeyError what is it when do they occur and how can it be avoided?
I'm getting a MultiValueDictKeyError in my views.py on my zoom variable. 我在我的zoom变量的views.py中遇到了MultiValueDictKeyError。 When I remove the zoom variable the error falls on the variable bellow it.
当我删除zoom变量时,错误就落在它下面的变量上。 So I can assume that this will just follow suite for the rest of the variables.
因此,我可以假设这将仅适用于其余变量。 What is a MultiValueDictKeyError and how can they be prevented?
什么是MultiValueDictKeyError?如何防止它们发生?
views.py 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 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]
so if y is not in GET response python raises KeyError 因此,如果y不在GET响应中,则python引发KeyError
Use get() method instead of direct access, it returns None (or whatever you set by default kwarg) instead of KeyError 使用get()方法,而不是直接访问,返回None(或任何你默认设置kwarg)代替KeyError异常
zoom = request.GET.get('zoom')
or 要么
query = request.GET
zoom = query.get('zoom')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.