Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django内联表单集多个模型_Django_Forms - Fatal编程技术网

Django内联表单集多个模型

Django内联表单集多个模型,django,forms,Django,Forms,TL;DR:我需要一个用于表格集的某种表格集 我有两个与一个业务实体相关的不同模型,我需要制作一个表单来像编辑一个表单一样编辑这两个模型。我需要像Django内联表单集那样在一个页面上创建很多这样的表单 现在我有以下几件事: class Parent(models.Model): name = models.Charfield() class FirstChild(models.Model): name = models.Charfield() e_id = models.Inte

TL;DR:我需要一个用于表格集的某种表格集

我有两个与一个业务实体相关的不同模型,我需要制作一个表单来像编辑一个表单一样编辑这两个模型。我需要像Django内联表单集那样在一个页面上创建很多这样的表单

现在我有以下几件事:

class Parent(models.Model):
  name = models.Charfield()

class FirstChild(models.Model):
  name = models.Charfield()
  e_id = models.IntegerField()
  parent = models.ForeignKey(Parent)

class FirstChildForm(django.forms.ModelForm):
    class Meta:
        model = Child
        fields = ('name', 'e_id', 'parent')
        widgets = {'parent': forms.TextInput}
我使用内联表单集渲染了很多表单:

formset_class = inlineformset_factory(Parent, FirstChild, 
                                      form=FirstChildForm, extra=1)
但是现在我必须为它添加第二个子模型和一个表单,并且仍然像一个内联表单一样渲染它,但是让它的表单实际编辑两个模型。像这样:

class SecondChild(models.Model):
  name = models.Charfield()
  e_id = models.IntegerField()
  parent = models.ForeignKey(Parent)

class SecondChildForm(django.forms.ModelForm):
    class Meta:
        model = Child
        fields = ('name', 'e_id', 'parent')
        widgets = {'parent': forms.TextInput}

formset_class = inlineformset_factory(models=[Parent, FirstChild], 
                                      forms=[FirstChildForm, SecondChildForm], 
                                      extra=1)
据我所知,Django表单集目前无法处理多个模型


那么,我应该选择哪种方式来实现这种行为,并且不打破所有django的概念呢?我不能使用一些额外的库,所以我必须自己实现所有东西,如果重要的话,我使用django 1.6。

因此,最后我使用这种方法作为基础: