1
我有一個非常簡單的Django形式由單個領域 - 「地址」:Django的形式,地理編碼 - 在地理編碼,如何驗證,如何通過地址解析結果
class AddressSearchForm(forms.Form):
"""
A form that allows a user to enter an address to be geocoded
"""
address = forms.CharField()
我可能甚至不需要使用表單,因爲我沒有保存這些數據 - 我只是將它收集起來用於搜索。但是,我想執行驗證:
def clean_address():
data = self.cleaned_data
g = geocoders.Google()
try:
place, (lat,lng) = g.geocode(data['address'])
except (GQueryError):
raise forms.ValidationError('Please enter a valid address')
except (GeocoderResultError, GBadKeyError, GTooManyQueriesError):
raise forms.ValidationError('There was an error geocoding your address. Please try again')
except:
raise forms.ValidationError('An unknown error occured. Please try again')
另外,我想用這個地址解析結果的Point對象傳遞給我的看法:
from django.contrib.gis.geos import Point
point = Point(lng, lat)
我的問題是,如何通過既地址和點數據到我的觀點?我只能傳遞地址,然後在視圖中重新進行地理編碼,但那會重複代碼。那麼,如何從表單中傳遞點對象呢?我應該使用隱藏字段嗎?其他建議?提前致謝。
謝謝。你的表單是什麼樣的?你如何通過homeaddress和homelocation? –
另外,您如何在您的視圖中訪問這些數據? –
而且,對於Django Point字符串,不應該先經度走? –