Hi, I'm a bit stuck with inline formset. I missed something. I'm using django 1.1.1.
I have a model:
class Address(models.Model):
street = ...
number = ...
...
class Person(models.Model):
first_name = ...
last_name =
address = models.ForeignKey(Address)
...
Based on this model, I would like to have one form to add a person and her
address. In order to achieve this, I'm using inline formset.
As far as I understood, formset allows to add multiple form on a page and
inline formset is an extension that allows to play with related objects.
I written the following view (based on the documentation located at [1])
[1] http://docs.djangoproject.com/en/1.1/topics/forms/modelforms/#inline-
formsets
def add_person_form(request):
address = Address()
PersonFormSet = inlineformset_factory(Address, Person, max_num = 1,
can_delete = False)
if request.method == 'POST':
formset = PersonFormSet(request.POST, request.FILES, instance =
address)
if formset.is_valid():
formset.save()
return redirect('/person')
else:
formset = PersonFormSet(instance = address)
return render_to_response('person/add_form.html', { "formset": formset } )
My template looks like (simplified version):
<form action="" method="post">
{{ formset }}
</form>
This only displays the person but not the address.
Extra question: if I want to display the fields in a given order, let's say:
first_name, last_name, and then all fields from Address object followed by the
remaining fields from Person. What is the best way of doing it ?
Thanks for your support,
Frédéric Burlet.
signature.asc
Description: This is a digitally signed message part.

