Hi, So I may have judged too fast. Turns out you were pretty close! I saw that the contributors to the plugin used jQuery in their demo project and I tried it as well... And it worked!
Thanks for the suggestion! Really helped me out here :) Op vrijdag 23 oktober 2015 14:54:49 UTC+2 schreef Jur Remeijn: > > So I'm using a dynamic formset within django: > https://github.com/elo80ka/django-dynamic-formset > I'm using it to render a page with a form (say, a pizza) and a formset > (say, a set of toppings). Because the number of toppings isn't determined, > I want to use a dynamical formset. > Right now, I have the page display one instance of topping form, with a > button to add another instance, which is added with the javascript found in > the github repo (and as a attachment). > Only I have a problem: When I fill in the form for one topping, and then > add another topping, all the radiobuttons get reset so the data from the > first topping is lost. > > Does anyone see what goes wrong here? This is my code, simplified (I > actually have a lot more fields for the form and subset, all choicefields > needing radiobuttons, so this is quite a big issue for me). > > models.py: > *class Pizza(models.Model):* > * name= models.CharField(max_length=55)* > * pricerange=models.CharField(max_length=55, > choices=PRICERANGE_CHOICES)* > > *class Topping(models.Model):* > * pizza = models.ForeignKey(Pizza)* > * number = models.IntegerField(null=True, blank=True)* > * name=models.CharField(max_length=55, choices=TOPPINGNAME_CHOICES)* > > forms.py: > class PizzaForm(forms.ModelForm): > > class Meta: > model = Pizza > fields = ['name', 'pricerange'] > > pricerange= > forms.ChoiceField(required=True,widget=forms.RadioSelect(),choices=PRICERANGE_CHOICES) > > class ToppingForm(forms.ModelForm): > class Meta: > model = Topping > fields = ['number', 'name' > *]* > > number = forms.IntegerField(required=True) > name = > forms.ChoiceField(required=True,widget=forms.RadioSelect(),choices=TOPPINGNAME_CHOICES) > > ToppingFormset = formset_factory(ToppingForm, max_num=8) > > form.html: > *<script type="text/javascript" > src="/static/pizza/jquery-1.11.3.min.js"></script>* > *<script type="text/javascript" > src="/static/pizza/jquery.formset.js"></script>* > *<script type="text/javascript">* > * $(function() {* > * $('.ToppingForm').formset();* > * })* > *</script>* > > > > > *<style type="text/css"> .add-row { padding-left:18px; > background:url(/static/arts/images/add.png) no-repeat left center; } > .delete-row { display:block; margin:6px 0 0 0; > padding-left:18px; background:url(/static/arts/images/delete.png) > no-repeat left center; } .dynamic-form { padding: 5px 15px; > }</style><form method="post" action=""> {% csrf_token %} {{ > form.non_field_errors }} {{ form.name <http://form.name> }} > {{ form.pricerange}} <div class="ToppingFormset"> {% for form in > formset.forms %} <div id=" {{ form.prefix }}-entry" class="ToppingForm"> > <table class="t03" style="width:100%"> <tr><td colspan="8">{{ > form.name.label_tag }} {{ form.name.errors }}</td></tr> <tr> {% for radio > in form.name <http://form.name> %} <td>{{ radio }}</td> {% endfor %} </tr> > </table> {{ form.number.errors }}{{ > form.number}} </div> {% endfor %} </div> <p>{{ formset.management_form > }}</p> <input type="submit" value="Volgende"/></form>* > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/e8c07c4f-5873-498a-8b74-bd0bba3e319d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

