Я нашел способ, но не могу получить данные из моей формы.Ниже моя форма и ее метод post ().проверка работает нормально, но как получить «очищенные» данные в версии django для движка приложений?
def get_type():
return [(str(type.key()), type.name) for type in GreType.all()]
class LatField(forms.Field):
def clean(self,value):
x = None
try:
x = float(value)
if x > 90.0 or x < -90.0:
x = None
except:
x = None
if x is None:
raise forms.ValidationError("Latitude should be a number between 90.00 and -90.00")
class LonField(forms.Field):
def clean(self,value):
x = None
try:
x = float(value)
if x > 180.0 or x < -180.0:
x = None
except:
x = None
if x is None:
raise forms.ValidationError("Longitude should be a number between 180.00 and -180.00")
class LocationForm(forms.Form):
type = forms.ChoiceField(choices=get_type())
name = forms.CharField(max_length=100)
desc = forms.CharField(widget=forms.Textarea(), required=False)
lat = LatField()
lon = LonField()
class LocationHandler(webapp.RequestHandler):
def get(self):
template_data = { 'form' : LocationForm() }
template_path = os.path.join(os.path.dirname(__file__), '../template/location.html')
self.response.headers['Content-Type'] = 'text/html'
self.response.out.write(template.render(template_path, template_data))
def post(self):
data = LocationForm(data=self.request.POST)
if data.is_valid():
# what to do here?
self.redirect('/locations')
мои подпрограммы проверки, вероятно, имеют некоторую избыточность, но я не совсем уверен насчет области Python
Я передал форму на основе модели ( предыдущий вопрос ), чтобы получить отдельные поля lat и lon.)