我正在 Django 1.5 上构建一个使用 PostGIS 存储位置数据的应用程序。对于原型,创建新位置记录的表单要求用户输入纬度和经度坐标(我认为这是最容易编写代码的设置)。
我创建了一个ModelForm
这样的:
class LocationForm(forms.ModelForm):
# Custom fields to accept lat/long coords from user.
latitude = forms.FloatField(min_value=-90, max_value=90)
longitude = forms.FloatField(min_value=-180, max_value=180)
class Meta:
model = Location
fields = ("name", "latitude", "longitude", "comments",)
到目前为止,一切都很好。但是,该Location
模型没有也latitude
没有longitude
字段。相反,它使用 aPointField
来存储位置的坐标:
from django.contrib.gis.db import models
class Location(models.Model):
name = models.CharField(max_length=200)
comments = models.TextField(null=True)
# Store location coordinates
coords = models.PointField(srid=4326)
objects = models.GeoManager()
我正在寻找的是在用户提交具有有效值的表单后,在哪里注入代码,该代码将为latitude
和longitude
输入获取值并将它们作为Point
对象存储在Location
's字段中。coords
例如,我正在寻找与 Symfony 1.4 的sfFormDoctrine::doUpdateObject()
方法等效的 Django。