我看过几篇关于此的博文(比如来自 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 类更容易做到这一点,只需滚动你自己的 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 类 - 从我使用它的内存来看它会非常复杂。
关于jquery - Django 中的动态嵌套表单集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6314235/