Ben*_*end 3 python django geodjango spatialite
我想在Ubuntu 11.04上使用SpatiaLite运行GeoDjango,即使设置很少,我也会遇到一个奇怪的错误.保存具有地理字段的模型实例可以正常工作,但是再次加载它会失败并出现异常:
Error encountered checking Geometry returned from GEOS C function "GEOSWKBReader_read_r".
Run Code Online (Sandbox Code Playgroud)
我的相关部分 settings.py
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.spatialite',
'NAME': '/tmp/test.db',
}
}
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.gis',
'testapp',
)
Run Code Online (Sandbox Code Playgroud)
testapp.models:
from django.contrib.gis.db import models
class TestModel(models.Model):
name = models.CharField(max_length=10)
location = models.PointField()
Run Code Online (Sandbox Code Playgroud)
testapp.admin
from django.contrib.gis import admin
from testapp.models import TestModel
admin.site.register(TestModel, admin.OSMGeoAdmin)
Run Code Online (Sandbox Code Playgroud)
/编辑:相同的确切代码在PostgreSQL/postgis上没有问题
好的,我自己发现了问题:我忘了models.GeoManager用作默认管理器.这解决了我的问题:
class TestModel(models.Model):
name = models.CharField(max_length=10)
location = models.PointField()
objects = models.GeoManager()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |