我对Django比较新。我已经阅读了文档,但我仍然无法使用它。
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)
data = serialize('geojson', querystring,
geometry_field='point',
fields=('name',))
print(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)
latlng = [lat, lon]
zoom = models.IntegerField(default=15)
def __str__(self):
return self.name
我如何使用searlizer?它没有抛出错误,但我知道它没有工作,因为除了请求之外没有任何东西被打印到服务器终端
答案 0 :(得分:1)
print(data)
无效。你必须做类似的事情:
return HttpResponse(data)
然后访问该视图的网址,您将看到结果。
<强>更新强>
如果您尝试访问的密钥不在MultiValueDictKeyError
或request.GET
中,则会出现 request.POST
。
要防止此错误,请确保您的GET
请求具有zoom
密钥。为此,您需要在地址栏中写下以下内容的URL:
/getmarkers/?zoom=val&formlat=val&somekey=val
将val
替换为该键的值。