Używam Django 1.2.3, PostGIS 1.5.2.Django unika tworzenia PointField w bazie danych po uruchomieniu Pythona manage.py syncdb
Z jakiegoś powodu, gdy biegnę
python manage.py syncdb
to tworzenie wszystkich innych pól w bazie danych z moich modeli, ale unika tworzenia równych nazwałem punkt, który podobno być PointField.
W moich plików model.py mam importowane:
from django.contrib.gis.db import models
i komentuje:
#from django.db import models
mój model wygląda mniej więcej tak:
class MyModel(models.Model):
myid = models.AutoField(primary_key=True)
title = models.CharField(max_length=50)
point = models.PointField()
objects = models.GeoManager()
Również po utworzeniu strona administracyjna Otrzymuję poniższe błędy:
Failed to install index for reports.MyModel model: permission denied for relation spatial_ref_sys
CONTEXT: SQL statement "SELECT SRID FROM spatial_ref_sys WHERE SRID = new_srid"
PL/pgSQL function "addgeometrycolumn" line 74 at SQL statement
SQL statement "SELECT AddGeometryColumn('','',$1,$2,$3,$4,$5)"
PL/pgSQL function "addgeometrycolumn" line 4 at SQL statement
W moim setting.py Dodałem:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
i
INSTALLED_APPS = (
...
'django.contrib.gis',
...
Wszelkie Idy dlaczego mam falujący te problemy? Dziękuję Ci!
Czy zmieniłeś rolę użytkownika django na Superuser? – dannyroa
Po prostu dostałem ten sam błąd i naprawiłem go zmieniając właściciela dwóch tabel, o których mowa, za pomocą SQL w następujący sposób: 'ALTER TABLE geometry_columns OWNER TO newuser' wykonany jako superuser. – markshep
Jedynym sposobem na uzyskanie dostępu do kolumny 'spatial_ref_sys' było użycie superużytkownika. –