我已经使用 PostGIS 后端创建了一个 Django 项目,据我所知,这一切似乎都很好。我现在在这个项目中创建了一个应用程序,如下所示:
from django.contrib.gis.db import models
class MyPlace(models.Model):
name = models.CharField(max_length=255)
location = models.PointField()
objects = models.GeoManager()
这应该是一个名称/点对的简单模型(稍后构建),但数据库没有创建位置字段。没有错误,并且该字段被忽略,直到我尝试访问模型(使用 Admin),在那里它发出“DatabaseError:column myproj_myplace.location does not exist”
我真的不确定这里出了什么问题,因为解析没有错误(syncdb 无一异常(exception)地工作)。当我为模型运行 sql 命令时,这是我得到的:
BEGIN;
CREATE TABLE "myproj_myplace" (
"id" serial NOT NULL PRIMARY KEY,
"name" varchar(255) NOT NULL
)
;
COMMIT;
还是没有字段!有什么想法吗?
我的 INSTALLED_APPS 中有“django.contrib.gis”和我的应用程序,并且已经构建了支持 PostGIS 的数据库模式(添加 sql 函数文件方法,而不是模板方法)
提前为任何帮助欢呼
这是从空模式完成的,表是从头开始创建的
最佳答案
尝试“python manage.py sqlall {app}”,由于某种原因,sql 输出不包含空间列,但 sqlall 包含。然后尝试使用 pgadmin3 直接在数据库上运行输出,您可能会更清楚地知道出了什么问题。
关于django - GeoDjango 项目缺少数据库模式中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5596768/