私はDjango 1.2.3、PostGIS 1.5.2を使用しています。私のpython manage.py syncdbの実行Djangoは、私がpython manage.py syncdbを実行すると、データベースにPointFieldを作成することを避けます
を実行したときに、それは私のモデルからデータベース内の他のすべてのフィールドを作成していますが、私はになってポイントをという名前のフィールドを作成することを回避するいくつかの理由
PointFieldである。
from django.contrib.gis.db import models
をし、次のようにコメント:私のmodel.pyファイルで
私がインポートされている
#from django.db import models
私のモデルは次のようになります。
class MyModel(models.Model): myid = models.AutoField(primary_key=True) title = models.CharField(max_length=50) point = models.PointField() objects = models.GeoManager()
はまた時に作成されます管理側私は以下のエラーを受け取ります:
私setting.pyで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
私が追加しました:
DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.postgis',
と
INSTALLED_APPS = ( ... 'django.contrib.gis', ...
任意のIDEを私はこの問題を波打つよ、なぜ?ありがとうございました!
djangoユーザの役割をスーパーユーザに変更しましたか? – dannyroa
私はちょうど同じエラーを受け取り、問題の2つのテーブルの所有者をSQLで変更することで修正しました: 'ALTER TABLE geometry_columns OWNER TO newuser'がスーパーユーザーとして実行されました。 – markshep
'spatial_ref_sys'カラムにアクセスする唯一の方法は、スーパーユーザを使用することでした。 –