Python 如何构造需要验证嵌套在两个级别上的一对多关系的表单?

Python 如何构造需要验证嵌套在两个级别上的一对多关系的表单?,python,django,django-forms,Python,Django,Django Forms,我有3个模型,我想从一个页面管理 class Model1(models.Model): ... class Model2(models.Model): parent = models.ForeignKey(Model1) ... class Model3(models.Model): parent = models.ForeignKey(Model2) ... 假设我在编辑Model1实例的html页面上,如果Model1,我正在编辑id为1的实例

我有3个模型,我想从一个页面管理

class Model1(models.Model):
    ...

class Model2(models.Model):
    parent = models.ForeignKey(Model1)
    ...

class Model3(models.Model):
    parent = models.ForeignKey(Model2)
    ...
假设我在编辑
Model1
实例的html页面上,如果Model1,我正在编辑id为1的实例

我还想在这里编辑父级为当前
Model1
实例的所有
Model2
实例。更明确地说,我想编辑当前的
Model2
实例,添加新实例,甚至删除现有实例

此外,我希望能够编辑/添加/删除与我将在本页上看到的
Model2
实例相关的
Model3
的新实例

我的问题与模板无关。一旦我的表格验证了他们应该验证的内容,我就可以接受这些

IDEA1 到目前为止,我想做的是破解
表单
表单集
对象,但当我查看表单集内部时,它似乎真的不支持这种深度关联的关系

IDEA2 我还考虑过创建一个html表单,动态生成输入元素,使用能够描述这个复杂层次结构的名称,然后在将数据传递给更简单的表单进行验证之前对其进行预处理

所以我说的是

data = {
  'model1_name': 'Joe',
  'model1_1_model2_color': 'red',
  'model1_1_model2_1_model3_province': 'Florence',
  'model1_1_model2_2_model3_province': 'Lombardia',
  'model1_2_model2_color': 'blue',
  'model1_2_model2_1_model3_accepted': True
}
看看我是如何生成这个关系图的

model1 (name=Joe)
 \-> model2 (color=red)
 |     \-> model3 (province=Florence)
 |     \-> model3 (province=Lombardia)
 \-> model2 (color=blue)
       \-> model3 (accepted=True)
到目前为止,第二个想法对我来说似乎更易于管理,但是我必须使用Javascript来生成表单元素名称


无论如何,我很想知道是否有其他人尝试过这样做,什么解决方案有效。

在这种情况下,我做的是两件事,一件在客户端表单上,另一件在服务器端。在客户端,我使用了dependent selects,它在更新时可以根据所选的值获取新数据(这可以是另一个dependent模型),并使用这些模型数据(使用适当的键)构建表单的一部分。然后在提交时,让服务器端验证所有这些并检查relationshipsbtw我正在为此使用一个定制的客户端MVVM框架,其中包括模型构建和来自声明性表单字段的验证等等。。我在服务器端有一个类似的验证框架