fields.py 568 B

123456789101112131415161718
  1. from wtforms.fields import StringField
  2. from google.appengine.ext import ndb
  3. import decimal
  4. class GeoPtPropertyField(StringField):
  5. def process_formdata(self, valuelist):
  6. if valuelist:
  7. try:
  8. lat, lon = valuelist[0].split(',')
  9. self.data = ndb.GeoPt(
  10. decimal.Decimal(lat.strip()),
  11. decimal.Decimal(lon.strip())
  12. )
  13. except (decimal.InvalidOperation, ValueError):
  14. raise ValueError('Not a valid coordinate location')