GeoDjango。管理员未在创建的实例中显示点 = models.PointField() 的地图位置
GeoDjango. Admin not showing map location for point = models.PointField() in created instances
我正在尝试以一种非常简单的方式创建成员实例来练习 GeoDjango。我能够创建实例,但它们在管理映射中没有正确显示 (见下图)
下面是我的models.py
from django.contrib.gis.db import models
class Member(models.Model):
name = models.CharField(max_length=150)
image = models.ImageField()
lat = models.FloatField()
lon = models.FloatField()
point = models.PointField()
objects = models.GeoManager()
def __str__(self):
return self.name
下面是我的views.py
class MemberCreate(CreateView):
model = Member
fields = ('name', 'image', 'lat', 'lon')
def form_valid(self, form, *args, **kwargs):
self.object = form.save(commit=False)
self.object.point = fromstr('POINT(%s %s)'%(self.object.lat, self.object.lon), srid=4326)
self.object.save()
return redirect('member:all_members')
模型和视图在我的 admin.py 上成功创建模型实例 下面是 admin.py
的代码
from django.contrib.gis import admin
from .models import Member
admin.site.register(Member, admin.OSMGeoAdmin)
关于我的 GeoDjango 项目管理员的要点见下文
点实际在互联网上的地方(注意相同的纬度,经度见下文)
我该如何解决这个问题
更改了这个
self.object.point = fromstr('POINT(%s %s)'%(self.object.lat, self.object.lon), srid=4326)
到
self.object.point = fromstr('POINT(%s %s)'%(self.object.lon, self.object.lat), srid=4326)
经度先于纬度。
我正在尝试以一种非常简单的方式创建成员实例来练习 GeoDjango。我能够创建实例,但它们在管理映射中没有正确显示 (见下图)
下面是我的models.py
from django.contrib.gis.db import models
class Member(models.Model):
name = models.CharField(max_length=150)
image = models.ImageField()
lat = models.FloatField()
lon = models.FloatField()
point = models.PointField()
objects = models.GeoManager()
def __str__(self):
return self.name
下面是我的views.py
class MemberCreate(CreateView):
model = Member
fields = ('name', 'image', 'lat', 'lon')
def form_valid(self, form, *args, **kwargs):
self.object = form.save(commit=False)
self.object.point = fromstr('POINT(%s %s)'%(self.object.lat, self.object.lon), srid=4326)
self.object.save()
return redirect('member:all_members')
模型和视图在我的 admin.py 上成功创建模型实例 下面是 admin.py
的代码from django.contrib.gis import admin
from .models import Member
admin.site.register(Member, admin.OSMGeoAdmin)
关于我的 GeoDjango 项目管理员的要点见下文
我该如何解决这个问题
更改了这个
self.object.point = fromstr('POINT(%s %s)'%(self.object.lat, self.object.lon), srid=4326)
到
self.object.point = fromstr('POINT(%s %s)'%(self.object.lon, self.object.lat), srid=4326)
经度先于纬度。