PostGISで位置データを保存するアプリケーションをDjango1.5で構築しています。プロトタイプの場合、新しい位置レコードを作成するフォームでは、ユーザーが緯度と経度の座標を入力する必要があります(これがコーディングするのに最も簡単な設定だと思います)。
私はその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
代わりに、を使用しPointField
て場所の座標を保存します。
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
たとえば、Symfony1.4のsfFormDoctrine::doUpdateObject()
メソッドに相当するDjangoを探しています。