J'utilise Django 1.2.3, PostGIS 1.5.2.Django évite de créer PointField dans la base de données quand j'exécute python manage.py syncdb
Pour une raison quelconque quand je lance
python manage.py syncdb
cela crée tous les autres champs de la base de données de mes modèles, mais évite de créer un champ que j'ai appelé point supposé être un PointField.
Dans mes fichiers model.py j'ai importé:
from django.contrib.gis.db import models
et a commenté:
#from django.db import models
mon modèle ressemble à ceci:
class MyModel(models.Model):
myid = models.AutoField(primary_key=True)
title = models.CharField(max_length=50)
point = models.PointField()
objects = models.GeoManager()
Aussi, quand crée le Côté administrateur, je reçois les erreurs ci-dessous:
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
Dans mon setting.py J'ai ajouté:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
et
INSTALLED_APPS = (
...
'django.contrib.gis',
...
Toute ides pourquoi je suis haletante ce problèmes? Je vous remercie!
Avez-vous changé le rôle de l'utilisateur django en superutilisateur? – dannyroa
Je viens d'obtenir la même erreur et je l'ai corrigé en changeant le propriétaire des deux tables en question avec SQL comme ceci: 'ALTER TABLE geometry_columns OWNER TO nouvel utilisateur' exécuté en tant que superutilisateur. – markshep
La seule façon d'accéder à la colonne 'spatial_ref_sys' était d'utiliser le super-utilisateur. –