Django中的动态嵌套Formset

时间:2011-06-11 05:12:09

标签: jquery python django django-forms

我已经看过一些关于此的博客文章(比如来自yergler的帖子),但未能找到一个优秀的解决方案。

我有3个型号:

class Workflow(models.Model): 
    name = models.CharField(max_length=255) 
    company = models.ForeignKey(Company) 
    class Meta: 
        unique_together = ('name', 'company') 
class Milestone(models.Model): 
    workflow = models.ForeignKey(Workflow) 
    tasks = models.ManyToManyField(Task) 
class Task(models.Model): 
    task = models.CharField(max_length=255) 

我怎样才能创建一个允许我添加许多里程碑的表单 工作流程和许多任务到里程碑?

基本上,我想给他们一个创建表单或编辑表单,并允许他们构建一个包含里程碑和任务的工作流程,但是希望允许他们使用javascript动态添加它们。

动态/ javascript部分很简单但我无法弄清楚如何在formset中嵌套formset。即里程碑下的任务。

1 个答案:

答案 0 :(得分:0)

就我个人而言,我认为在不使用formset类的情况下更容易实现它,只需滚动自己的NestedFormset类,例如,它将解析具有多个前缀的数据 - 即

1.title => "Milestone 1 title"
2.title => "Milestone 2 title"
1.1.task => "Task for milestone 1"
1.2.task => "Task for milestone 2"

我很确定在github上发布类似可扩展的Formset类的人会得到大量的关注者和赞誉:P 我不确定是否可以以允许嵌套的方式修补Formset类,同时使其向后兼容 - 从我使用它的记忆来看,这将非常复杂。