在我的一个模型中添加了一个Point字段以加载map.to迁移模型中的更改,在pycharm终端python manage.py makemigrations中运行良好。但是python manage.py migration会引发ValueError(“无法将类型为%s的对象用于空间查找参数。”%type(obj)。名称)
我认为原因可能是Django 2.2中的更改。我什至尝试使用MultiPolygon字段PointField。
settings.py
CORE_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.postgres',
'django.contrib.gis'
]
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
models.py
from django.contrib.gis.db import models
longitude = models.FloatField("Outlet Longitude", default=0.0, blank=False, help_text="Longitude")
latitude = models.FloatField("Outlet Latitude", default=0.0, blank=False, help_text="Latitude")
location = models.PointField()
我只想加载地图。
答案 0 :(得分:0)
要使用postgis加载地图,您可以执行以下操作:
from django.contrib.gis.db import models as gis_models
location = gis_models.PointField(
"Location in Map", geography=True, blank=True, null=True,
srid=4326, help_text="Point(longitude latitude)")
建议:从其他应用程序导入模型时,请尝试使用适当的别名
答案 1 :(得分:0)
在我的情况下,我输入元组值作为默认值是一个问题,所以发生了错误。
from django.contrib.gis.geos import Point
location = gis_models.PointField(default=Point(0, 0), blank=True)