Я пытаюсь решить проблему, но я понятия не имею, как ей противостоять. Мне нужна помощь: -)
У меня есть иерархия модели:
class Task(models.Model):
name = models.CharField(max_length=255)
number_of_steps = models.IntegerField()
class StepGroup(models.Model):
task = models.ForeignKey(Task)
init_date = models.DateField()
class Step(models.Model):
group = models.ForeignKey(StepGroup)
name = models.CharField(max_length=255)
Мне нужно написать диалог, в котором я создаю несколько групп шагов. InlineFormSet выглядит так, как нужно, но поскольку есть два уровня вложенности, я не знаю, как это сделать.
Кроме того, мне нужны обычные вещи с формами: контроль ошибок (form.name_of_field.errors), автопопуляция при редактировании задачи и т.д., поэтому выполнение этого вручную с обработкой запроса POST на стороне сервера будет слишком сложным и подвержены ошибкам.
Это то, как мне нужна форма (количество шагов в каждой группе задается полем "number_of_steps" в модели Task):
+-----------------------------------+
| STEP GROUP 1 |
| |
| Init date: _____________ |
| |
| Step 1: ________________ |
| Step 2: ________________ |
| Step 3: ________________ |
| |
+-----------------------------------+
| STEP GROUP 2 |
| |
| Init date: _____________ |
| |
| Step 1: ________________ |
| Step 2: ________________ |
| Step 3: ________________ |
| |
+-----------------------------------+
| |
| +-------------------+ |
| | Create step group | |
| +-------------------+ |
+-----------------------------------+
Пожалуйста, любая помощь, предложение или ссылка будут очень оценены.