0

I am trying to add nested inlines using http://yergler.net/blog/2009/09/27/nested-formsets-with-django/

using these customizations for Django 1.4:

django inline formsets with a complex model for the nested form and https://groups.google.com/forum/#!topic/django-users/E1oL0khsUlI

However, depending on the form.nested code, I get different errors.

Either :

[u'ManagementForm data is missing or has been tampered with']

or

__init__() got an unexpected keyword argument 'instance'

Code that explains it all is below:

**forms.py ** yields this error

__init__() got an unexpected keyword argument 'instance'

form.nested = [
         IndicatorValueFormSet(
              data=self.data or None,
              instance=instance,
              prefix = 'indicator_%s' % pk_value)]

IndicatorValueFormSet = modelformset_factory(IndicatorValue, extra=0)
IndicatorFormSet = inlineformset_factory(Disease, Indicator, formset=BaseIndicatorFormSet, extra=1)

code below yields this error:

[u'ManagementForm data is missing or has been tampered with']

form.nested = [
          IndicatorValueFormSet(
               queryset = IndicatorValue.objects.filter(relevantindicator = pk_value), 
               prefix = 'value_%s' % pk_value)]

IndicatorValueFormSet = modelformset_factory(IndicatorValue, extra=0)
IndicatorFormSet = inlineformset_factory(Disease, Indicator, formset=BaseIndicatorFormSet, extra=1)

models.py

class Disease(models.Model):
        disease = models.CharField(max_length=300, verbose_name="disease")


class Indicator(models.Model):
        relevantdisease = models.ForeignKey(Disease, verbose_name="disease")       
        indicator = models.CharField(max_length=300, verbose_name="indicator")

class IndicatorValue(models.Model):
        relevantindicator = models.ForeignKey(Indicator, verbose_name="indicators")
        indicator_value = models.CharField(max_length=50, verbose_name="indicator Values")

Update

HTML

 {{disease.management_form}}

 {{ indicators.management_form }}

{% for relevantindicator in indicators.forms %}

  {{ relevantindicator }}

  {% if relevantindicator.nested %}
  {% for formset in relevantindicator.nested %}
  {{ formset.as_table }}
  {% endfor %}
  {% endif %}

{% endfor %}

Community
  • 1
  • 1
nlr25
  • 1,605
  • 5
  • 17
  • 27

1 Answers1

0

This is because, Django adds data to your form for relating to managing the formset. You need to include it since you're rendering the form manually.

See: django modelformset_factory - management form data is missing

PS: A simple Google or Stack Overflow search would have yielded your answer.

Community
  • 1
  • 1
pygeek
  • 7,356
  • 1
  • 20
  • 41
  • I wasn't sure where the error is coming from. I believe my formsets are already in the HTML as per the resource your linked me to. I've updated the original question to include a snippet of my views and HTML. – nlr25 Aug 06 '13 at 23:16