Django Dynamic Form

Create dynamic form for render as an empty web form.

from django import forms
form_config = {'login':'CharField', 'email':'EmailField', 'active':'BooleanField'}
dynamic_form = forms.Form()
for key in form_config.keys():
dynamic_form.fields.insert(-1, key, getattr(forms, form_config.get(key))())
print dynamic_form.as_table()

output

Create dynamic form and validate the input data.

from django import forms
form_config = {'login':'CharField', 'email':'EmailField', 'active':'BooleanField'}
dynamic_form = forms.Form()
dynamic_form.__init__({'login':'cwt', 'email':'cwt.bashell.com', 'active':True})
for key in form_config.keys():
dynamic_form.fields.insert(-1, key, getattr(forms, form_config.get(key))())

Validation

>>> dynamic_form.is_valid()
<<< False

>>> dynamic_form.errors
<<< {'email': [u'Enter a valid e-mail address.']}

Note that when you want to validate the data, you must initialize dynamic_form with the input data before insert the fields.

Post your comment:

Author:

  • chaiwat

Archives:

Powered by Django.