jquery - Django 中的动态嵌套表单集

标签 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 类更容易做到这一点,只需滚动你自己的 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/

相关文章:

javascript - 如何让我的 .NET 开发人员同事相信学习 jQuery 是有益的

python - 如何使用 re.compile 和 re.findall 删除括号内的文本?

python - 使用 git 部署

python - 为什么 admin.py 从未加载?

python - 类型错误 : get() got multiple values for argument 'task_id'

javascript - 如何使用 jquery 在页面加载时触发 Click

javascript - 为什么我的 Javascript 在 IE8 中无法运行?

javascript - 在 FullCalendar 的 Dayclick 事件上触发 jQuery qTip,然后使用其中的按钮创建事件

Python plot() 函数

python - Pyspark:重命名 DataFrame 列中的字典键