bottle+wtforms - Integer Problem
Verfasst: Mittwoch 21. Oktober 2015, 15:54
Hallo
Auf der Konsole funktioniert folgendes problemlos:
In der Bottle app mit derselben Klasse:
Kommt folgender Fehler:
[/size]
Leider weiss ich jetzt nicht, ob mir da bottle den String verhunzt oder wo genau das Problem liegt mit ``project_id``
Auf der Konsole funktioniert folgendes problemlos:
Code: Alles auswählen
from wtforms import Form, StringField, IntegerField, SubmitField, validators
class BizhubForm(Form):
project_name = StringField(u'project_name', [validators.required(), validators.length(max=15)])
project_id = IntegerField(u'project_id', [validators.required(), validators.length(max=4)])
submit = SubmitField(u'submit')
form = BizhubForm(project_name=u'Hallo Welt', project_id=u'1234')
print form.validate()
print form.errors
Code: Alles auswählen
@app.route('/bizhub', method='GET')
def bizhub(db):
username = is_logged_in(db)
form = BizhubForm(request.GET.decode())
if request.GET.get('save'):
for i in form:
print i
print form.errors
print form.validate()
Code: Alles auswählen
<input id="project_name" name="project_name" type="text" value="Hallo Welt">
<input id="project_id" name="project_id" type="text" value="1234">
<input id="submit" name="submit" type="submit" value="submit">
{}
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\bottle.py", line 862, in _handle
return route.call(**args)
File "C:\Python27\lib\site-packages\bottle.py", line 1732, in wrapper
rv = callback(*a, **ka)
File "C:\Python27\lib\site-packages\bottle_sqlite.py", line 100, in wrapper
rv = callback(*args, **kwargs)
File "app.py", line 126, in bizhub
print form.validate()
File "C:\Python27\lib\site-packages\wtforms\form.py", line 310, in validate
return super(Form, self).validate(extra)
File "C:\Python27\lib\site-packages\wtforms\form.py", line 152, in validate
if not field.validate(self, extra):
File "C:\Python27\lib\site-packages\wtforms\fields\core.py", line 200, in validate
stop_validation = self._run_validation_chain(form, chain)
File "C:\Python27\lib\site-packages\wtforms\fields\core.py", line 220, in _run_validation_chain
validator(form, self)
File "C:\Python27\lib\site-packages\wtforms\validators.py", line 92, in __call__
l = field.data and len(field.data) or 0
TypeError: object of type 'int' has no len()
Leider weiss ich jetzt nicht, ob mir da bottle den String verhunzt oder wo genau das Problem liegt mit ``project_id``