Динамические вложенные формы в Django - PullRequest
3 голосов
/ 11 июня 2011

Я видел несколько постов в блоге (например, от 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 очень проста, но я не смог понять, как вложить набор форм в набор форм. то есть задачи под Вехой.

1 Ответ

0 голосов
/ 11 июня 2011

Лично я думаю, что проще сделать это вообще без использования класса 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"

Я почти уверен, что человек, который опубликует такой расширяемый класс, подобный Formset, на github, получит тонны подписчиков и похвал: P Я не уверен, можно ли пропатчить класс Formset таким образом, чтобы он позволял вложение, оставляя его обратно совместимым - судя по моей памяти, работать с ним будет действительно сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...