【问题标题】:Management errors and __init__ errors trying to implement nested formsets尝试实现嵌套表单集的管理错误和 __init__ 错误
【发布时间】:2013-08-06 22:46:05
【问题描述】:

我正在尝试使用 http://yergler.net/blog/2009/09/27/nested-formsets-with-django/ 添加嵌套内联

为 Django 1.4 使用这些自定义:

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

但是,根据 form.nested 代码,我得到不同的错误。

要么:

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

__init__() got an unexpected keyword argument 'instance'

解释这一切的代码如下:

**forms.py ** 产生这个错误

__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)

下面的代码会产生这个错误:

[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")

更新

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 %}

【问题讨论】:

    标签: django


    【解决方案1】:

    这是因为,Django 将数据添加到您的表单中,用于管理表单集。您需要包含它,因为您要手动呈现表单。

    见:django modelformset_factory - management form data is missing

    PS:一个简单的 Google 或 Stack Overflow 搜索就会得到你的答案。

    【讨论】:

    • 我不确定错误来自哪里。根据您链接到的资源,我相信我的表单集已经在 HTML 中。我已更新原始问题以包含我的视图和 HTML 的 sn-p。
    猜你喜欢
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多