UbuntuでSpatialiteでGeoDjangoを使用するとエラーが発生します
-
15-11-2019 - |
質問
私はGeoDjangoをUbuntu11.04のSpatiaLiteで実行しようとしていますが、非常に最小限のセットアップでも、奇妙なエラーが発生しています。Geoフィールドを持つモデルのインスタンスを保存することは機能しますが、再びロードすることは失敗します 例外:
Error encountered checking Geometry returned from GEOS C function "GEOSWKBReader_read_r".
私の関連部分 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',
)
testapp.models
:
from django.contrib.gis.db import models
class TestModel(models.Model):
name = models.CharField(max_length=10)
location = models.PointField()
testapp.admin
from django.contrib.gis import admin
from testapp.models import TestModel
admin.site.register(TestModel, admin.OSMGeoAdmin)
/編集:同じ正確なコードはPostgreSQL/postgisで問題なく動作します
解決
OK、私は自分自身で問題を見つけました:私は使うのを忘れていました models.GeoManager
デフォルトのマネージャとして。これは私の問題を修正します:
class TestModel(models.Model):
name = models.CharField(max_length=10)
location = models.PointField()
objects = models.GeoManager()
所属していません StackOverflow