Note that there are some explanatory texts on larger screens.

plurals
  1. PODjango formset data does not get saved when initial values are provided
    primarykey
    data
    text
    <p>I have a formset which has some initial data provided - it's a data cloned from other model which contains 2 fields 'group' and 'requested'.</p> <p>When initial data is provided the forms in formset do not get saved, they only get saved when I'll modify the form with the data a little bit.</p> <p>When no initial data is provided forms do get saved.</p> <p>Why adding intial data to a formset makes it impossible to save formsets data to the database?</p> <p>This is my formset existing in get_context_data dictionary:</p> <pre><code> initial = ProcedureActionGroup.objects.filter(procedure__id=self.kwargs.get('pk', None)) initial_values = initial.values('group', 'requested') print initial_values initial_count = initial.count() ActionGroupFormset = inlineformset_factory(self.model, TaskGroup, extra=initial_count, form=TaskActionGroupForm, can_delete=False, ) data['formset'] = ActionGroupFormset(self.request.POST or None, initial=initial_values, **self.get_formset_kwargs()) </code></pre> <p>This is my form_valid method where I save all data</p> <pre><code>def form_valid(self, form): context = self.get_context_data() forms = [] forms.append(form.is_valid()) if self.get_procedure_obj(): formset = context['formset'] forms.append(formset.is_valid()) if all(forms): self.object = form.save(commit=False) form.save() if self.get_procedure_obj(): formset = formset.save(commit=False) for obj in formset: obj.task = self.object obj.save() self.object.extract_users() return HttpResponseRedirect(self.object.get_absolute_url()) </code></pre> <p>Model:</p> <pre><code>class TaskGroup(models.Model): task = models.ForeignKey(Task, null=True, blank=False) group = models.ForeignKey(ActionGroup, null=True, blank=True) requested = models.PositiveIntegerField(u'Requested', null=True, blank=True) </code></pre> <p>form template:</p> <pre><code>&lt;form method="post" action="" class="span6 offset2 form form-horizontal"&gt; {% crispy form%} {{formset.management_form}} {% if formset %} &lt;div&gt; &lt;fieldset&gt; &lt;table class="table table-striped"&gt; {% for form in formset%} &lt;tr&gt; {% for field in form %} &lt;td&gt; {{field}} &lt;/td&gt; {% endfor %} &lt;/tr&gt; {% endfor %} &lt;/table&gt; &lt;/fieldset&gt; &lt;/div&gt; {% endif %} &lt;div class="form-actions"&gt; &lt;button class="btn btn-primary btn-large" type="submit"&gt; Save &lt;/button&gt; &lt;/div&gt; &lt;/form&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload