HTML Formular mit Flatland erstellen
Verfasst: Mittwoch 7. September 2011, 20:20
Hallo,
weiß jemand, wie man mit Flatland eine vernünftiges HTML Formular erstellt? Also z.B. ein, was mit WTForm so aussieht:
Mit Deform und Fungiform bekomme ich das auch ohne Probleme hin, bei Flatland habe ich eine mittelschwere Krise. Ich weiß noch nicht mal im Ansatz, wie man vernünftig und automatisch ein select-Feld bekommt. Außerdem checke ich nicht, wie man die Daten des übermittelten, ausgefüllten Formulars zwecks Validierung an die Flatland-Form über gibt. Wenn jemand einen (schlechten?) Startpunkt braucht:
Da "sex" ein String ist kann man für das Feld schon mal keine "<option>"-Liste für das select-Feld bauen... Aber alle meine Versuche mit "sex=List..." oder "sex=Dict..." sind kläglich gescheitert.
Gruß, noisefloor
weiß jemand, wie man mit Flatland eine vernünftiges HTML Formular erstellt? Also z.B. ein, was mit WTForm so aussieht:
Code: Alles auswählen
from wtforms import Form, TextField, SelectField, DateField, \
PasswordField, validators
class UserData(Form):
name = TextField(u'Name',
[validators.Required(),validators.NoneOf('admin','superuser')])
birthday = DateField(u'Geburtsdatum',[validators.Optional()])
sex = SelectField(u'Geschlecht',
choices=[(u'männlich',u'männlich'),(u'weiblich',u'weiblich')])
Code: Alles auswählen
from flatland import Form, String, Date
from flatland.validation import Present, ValueIn
from flatland.out.markup import Generator
gen = Generator()
sex_data = [u'männlich',u'weiblich']
def not_allowed_name(element, state):
if element.value in ['admin','superuser']:
return False
else:
return True
class UserData(Form):
name = String.using(
label = u'Name',
validators = [
Present(),
not_allowed_name])
birthday = Date.using(
label = u'Geburtsdatum',
optional = True)
sex = String.using(
label = u'Geschlecht',
validators = [
Present(),
ValueIn(sex_data)
])
Gruß, noisefloor