All pastes #393307 Raw Edit

Stuff

public text v1 · immutable
·published 2007-03-13 13:20 UTC
rendered paste body
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})