<p>Say I have a form like:</p>

<pre><code>class GeneralForm(forms.Form):
    field1 = forms.IntegerField(required=False)
    field2 = forms. IntegerField(required=False)
</code></pre>

<p>And I want to show it twice on a page within one form tag each time with a different prefix e.g.,:</p>

<pre><code>rest of page ...
&lt;form ..&gt;
GeneralForm(data,prefix="form1").as_table()
GeneralForm(data,prefix="form2").as_table()
&lt;input type="submit" /&gt;
&lt;/form&gt;
rest of page ...
</code></pre>

<p>When the user submits this, how do I get the submitted form back into two separate forms to do validation, and redisplay it?</p>

<p><a href="http://docs.djangoproject.com/en/dev/ref/forms/api/#prefixes-for-forms" rel="noreferrer">This was the only documentation</a> I could find and it's peckish.</p>

You process each form as you normally would, ensuring that you create instances which have the same prefixes as those used to generate the form initially.
Here's a slightly awkward example using the form you've given, as I don't know what the exact use case is:
```
```
def some_view(request):
    if request.method == 'POST':
        form1 = GeneralForm(request.POST, prefix='form1')
        form2 = GeneralForm(request.POST, prefix='form2')
        if all([form1.is_valid(), form2.is_valid()]):
            pass # Do stuff with the forms
    else:
        form1 = GeneralForm(prefix='form1')
        form2 = GeneralForm(prefix='form2')
    return render_to_response('some_template.html', {
        'form1': form1,
        'form2': form2,
    })
```
```
Here's some real-world sample code which demonstrates processing forms using the prefix:
http://collingrady.wordpress.com/2008/02/18/editing-multiple-objects-in-django-with-newforms/