class JoinManipulator(forms.Manipulator):
def __init__(self):
self.fields = (
forms.TextField(field_name="name", is_required=True, maxlength=100),
forms.TextField(field_name="business_name", is_required=True, maxlength=40),
forms.IntegerField(field_name="telephone", is_required=True, length=40, maxlength=50),
forms.EmailField(field_name="email", is_required=True),
forms.SelectField(field_name="countries", is_required=True, choices=countries),
forms.CheckboxField(field_name="sms_enable"),
forms.LargeTextField(field_name="message", is_required=True),
)
def join(request):
manipulator =JoinManipulator()
if request.method == 'POST':
# If data was POSTed, we're trying to create a new Customer.
new_data = request.POST.copy()
# Check for errors.
errors = manipulator.get_validation_errors(new_data)
manipulator.do_html2python(new_data)
if not errors:
# No errors. This means we can save the data!
# new_place = manipulator.save(new_data)
# Redirect to the object's "edit" page. Always use a redirect
# after POST data, so that reloads don't accidently create
# duplicate entires, and so users don't see the confusing
# "Repost POST data?" alert box in their browsers.
return HttpResponseRedirect("/places/edit/%i/" % new_place.id)
else:
# No POST, so we want a brand new form without any data or errors.
errors = new_data = {}
# Create the FormWrapper, template, context, response.
form = forms.FormWrapper(manipulator, new_data, errors)
return render_to_response('join.html', {'form': form})