On 08/22/2011 05:44 PM, ozgur yilmaz wrote:
Ok. Thank you so much. So, formset is a suitable way to achieve this.
But, is it the most django-oriented way? Is there any alternative way?
Maybe using popup window to select a product, and handle the return
value of popup, then use a hiddenvalue to hold the return value. And
repeat this for many times, to add multiple product? Is it a common
way? Thanks again,
Given that a Django formset is a feature of Django, I'd say it's a
pretty django-oriented way. However, the way I suggested doesn't require
formsets.
Briefly:
1. Have JavaScript on your page that can dynamically add elements
to your HTML form.
2. Ensure that your JavaScript attaches a unique prefix to each set
of elements that belong together. Example, if you'll have a product ID
and quantity, you need to make sure that each pair share the same prefix
and no other elements share that prefix.
Example:
<input type="text" id="1-quantity" />
<input type="text" id="1-product_id" />
<input type="text" id="2-quantity" />
<input type="text" id="2-product_id" />
3. In your view, get a list of the prefixes from your request.POST.
4. For each prefix, create a ModelForm instance passing the prefix
kwarg with the prefix and request.POST as the data kwarg.
From there it's straightforward.
Shawn
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.