Mam instancję GeoDjango połączoną z backendem bazy danych PostGIS. Gdy przeszukuję tabelę w tej bazie danych, pojawia się błąd w tytule:
AttributeError: "DatabaseOperations" object has no attribute "select"
Jak sugerowano gdzie indziej, sprawdziłem, aby upewnić się, że mój local_settings.py
plik określił poprawny silnik bazy danych: "ENGINE": "django.contrib.gis.db.backends.postgis"
. Jest to już poprawne w moim pliku ustawień.
Jak rozwiązać ten problem?
Odpowiedzi:
0 dla odpowiedzi № 1Wygląda na to, że twoje ustawienia Django nie są w porządku i że twoja baza danych ENGINE
może "django.db.backends.postgresql"
, kiedy powinno być "django.contrib.gis.db.backends.postgis"
. Aby potwierdzić, uruchom:
python manage.py shell
>>> from django.conf import settings
>>> settings.DATABASES
{"default": {"ATOMIC_REQUESTS": False,
"AUTOCOMMIT": True,
"CONN_MAX_AGE": 0,
"ENGINE": "django.contrib.gis.db.backends.postgis",
"HOST": "",
"NAME": "groundedpleasures",
"OPTIONS": {},
"PASSWORD": "",
"PORT": "",
"TEST": {"CHARSET": None, "COLLATION": None, "MIRROR": None, "NAME": None},
"TIME_ZONE": None,
"USER": ""}}
Powyższe pokazuje, że mam jeden "default"
baza danych skonfigurowana i korzysta z silnika „postgis” (tego właśnie chcemy).
Uważaj na użycie dj_database_url
pakiet w ustawieniach, ponieważ może to zastępować ustawienia bazy danych ze zmiennych środowiskowych. Uważaj również na wiele baz danych innych niż „domyślne” w ustawieniach.