Объект 'DatabaseOperations' не имеет атрибута 'select' ошибка при интеграции базы данных Azure SQL с django
Недавно я перешел от использования бэкенда базы данных Postgres / PostGIS для моего приложения Django к базе данных SQL на Azure. В моей таблице данных есть столбец геометрии. Я могу запросить столбец геометрии из Azure Data Studio, используя необработанные SQL-запросы в моем представлении. Однако, когда я пытаюсь вернуть представление, используя ORM Django, я получаю эту ошибку (более длинная трассировка ниже):
AttributeError at /building/1/
'DatabaseOperations' object has no attribute 'select'
Request Method: GET
Request URL: http://localhost:8000/building/1/
Django Version: 2.1.15
Exception Type: AttributeError
Exception Value:
'DatabaseOperations' object has no attribute 'select'
Из того, что я вижу, кажется, что это проблема настроек / конфигурации, и в большинстве сообщений говорится о правильной настройке Postgis, однако мне нужно использовать базу данных Azure SQL, а не Postgis.
Вот мои настройки:
DATABASES = {
"default": {
"ENGINE": "sql_server.pyodbc",
"NAME": "Buildings",
"USER": "BuildingsUser",
"PASSWORD": "*************",
"HOST": "buildings-test-db.database.windows.net",
"PORT": "1433",
"OPTIONS": {
"driver": 'FreeTDS',
'host_is_server': True,
# 'MARS_Connection': 'True',
},
},
}
Кто-нибудь успешно настроил базу данных Azure с геопространственными колонками для приложения django и использовал Django ORM? Может быть, мне нужен другой движок для базы данных SQL сервера с геопространственными колонками?
Я бы очень хотел иметь возможность использовать Django ORM и не писать все необработанные SQL запросы.
Я подтвердил, что мое соединение с базой данных работает - я могу писать необработанный SQL в представлении и возвращаются правильные строки.
self.select, self.klass_info, self.annotation_col_map = self.get_select()
File "/Users/.../env/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 244, in get_select
sql, params = self.compile(col, select_format=True)
File "/Users/.../env/lib/python3.7/site-packages/sql_server/pyodbc/compiler.py", line 357, in compile
return super().compile(node, select_format)
File "/Users/.../env/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 392, in compile
return node.output_field.select_format(self, sql, params)
File "/Users/.../env/lib/python3.7/site-packages/django/contrib/gis/db/models/fields.py", line 271, in select_format
return compiler.connection.ops.select % sql, params
AttributeError: 'DatabaseOperations' object has no attribute 'select'