我无法进一步找到Django在PostGIS中调用poly__within
查询GeoDjango的行中出现错误的原因。你知道吗
我的模型没有poly
但是下面的错误表示它是一个FieldError。我不知道它在哪里或者为什么要为poly
寻找一个字段
Traceback (most recent call last):
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/gridlockdev/Desktop/heroku/grace/network/views.py", line 71, in view_routes
routes = Route.objects.filter(poly__within= geom[0])
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/query.py", line 784, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/query.py", line 802, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1250, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1276, in _add_q
allow_joins=allow_joins, split_subq=split_subq,
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1154, in build_filter
lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1034, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File "/home/gridlockdev/Desktop/heroku/grace/env/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1352, in names_to_path
"Choices are: %s" % (name, ", ".join(available)))
django.core.exceptions.FieldError: Cannot resolve keyword 'poly' into field. Choices are: agency, agency_id, created_at, distance, duration, ogc_fid, route_color, route_desc, route_id, route_long, route_name, route_tcolor, route_type, route_url, shape_id, updated_at, wkb_geometry
在我的生活中是这样的视图.py你知道吗
json_feature = json.loads(request.POST['geo_obj'])
geom = make_geometry_from_feature(json_feature)
routes = Route.objects.filter(poly__within= geom[0])
Django过滤器语法是关键字参数的第一部分,在
__
之前是字段名。Route.objects.filter(poly__within=geom[0])
筛选poly
字段位于给定几何体中的路由对象。你知道吗您还没有共享您的
Route
模型,但我假设它上面有一个几何字段。如果是这样,您应该用几何体字段的名称替换poly
。e、 如果你的模特像这样那么你的过滤器应该是
Route.objects.filter(shape__within=geom[0])
。你知道吗相关问题 更多 >
编程相关推荐