Объект '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'
Вернуться на верх