Tôi đang sử dụng Django 1.2.3, PostGIS 1.5.2.Django tránh tạo PointField trong cơ sở dữ liệu khi tôi chạy python manage.py syncdb
Đối với một số lý do khi tôi chạy
python manage.py syncdb
nó tạo ra tất cả các lĩnh vực khác trong cơ sở dữ liệu từ các mô hình của tôi, nhưng tránh tạo ra một sân Tôi tên là thời điểm đó phải là một PointField.
Trong file model.py của tôi, tôi đã nhập khẩu:
from django.contrib.gis.db import models
và nhận xét:
#from django.db import models
mô hình của tôi trông giống như sau:
class MyModel(models.Model):
myid = models.AutoField(primary_key=True)
title = models.CharField(max_length=50)
point = models.PointField()
objects = models.GeoManager()
Ngoài ra khi được tạo phía quản trị viên tôi nhận được các lỗi bên dưới:
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
Trong setting.py của tôi, tôi đã thêm:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
và
INSTALLED_APPS = (
...
'django.contrib.gis',
...
Bất kỳ IDEs lý do tại sao tôi đang phập phồng vấn đề này? Cảm ơn bạn!
Bạn có thay đổi vai trò của người dùng django thành Superuser không? – dannyroa
Tôi vừa gặp lỗi tương tự và sửa nó bằng cách thay đổi chủ sở hữu của hai bảng được đề cập với SQL như sau: 'ALTER TABLE geometry_columns OWNER TO newuser' được thực hiện như một superuser. – markshep
Cách duy nhất để truy cập vào cột 'spatial_ref_sys' là bằng cách sử dụng superuser. –