如何将GeoQuerySet.distance(geom,**kwargs)从Django 1.8传输到Django 3.0?

如何将GeoQuerySet.distance(geom,**kwargs)从Django 1.8传输到Django 3.0?,django,geodjango,django-1.8,django-2.2,django-3.0,Django,Geodjango,Django 1.8,Django 2.2,Django 3.0,我在Django 1.8文档中找到了这个示例。对于我来说,遵循同样的步骤是非常重要的,但是在Django3.0(或2.2)中 但是AustraliaCity.objects.distance(pnt)在Django3.0中导致了一个错误。AttributeError:“AustraliaCity”对象没有属性“distance” Traceback (most recent call last): File "/home/PycharmProjects/my_project/venv/lib

我在Django 1.8文档中找到了这个示例。对于我来说,遵循同样的步骤是非常重要的,但是在Django3.0(或2.2)中

但是AustraliaCity.objects.distance(pnt)在Django3.0中导致了一个错误。AttributeError:“AustraliaCity”对象没有属性“distance”

Traceback (most recent call last):
  File "/home/PycharmProjects/my_project/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/PycharmProjects/my_project/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/PycharmProjects/my_project/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/PycharmProjects/my_project/my_project/web.py", line 21, in show
    print(city.name, city.distance)
AttributeError: 'AustraliaCity' object has no attribute 'distance'

如果您有任何建议,我将不胜感激。

您应该可以通过注释完成此操作

from django.contrib.gis.db.models.functions import Distance
for city in AustraliaCity.objects.annotate(distance=Distance('point', pnt)):
    print(city.name, city.distance)

是查询中的错误还是打印中的错误?@IainShelvington查询和打印中都有错误您可以共享回溯吗?@IainShelvington更新了一个问题
Traceback (most recent call last):
  File "/home/PycharmProjects/my_project/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/PycharmProjects/my_project/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/PycharmProjects/my_project/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/PycharmProjects/my_project/my_project/web.py", line 21, in show
    print(city.name, city.distance)
AttributeError: 'AustraliaCity' object has no attribute 'distance'
from django.contrib.gis.db.models.functions import Distance
for city in AustraliaCity.objects.annotate(distance=Distance('point', pnt)):
    print(city.name, city.distance)