Zagnieżdżone zestawy danych Django [zamknięte]

Próbuję rozwiązać problem, ale nie mam pojęcia, jak sobie z tym poradzić. Potrzebuję pomocy :-)

Mam taką hierarchię modeli:

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)

Muszę napisać okno dialogowe, w którym tworzę kilka grup kroków. InlineFormSet wygląda na dobry sposób, ale ponieważ istnieją dwa poziomy zagnieżdżania, nie wiem, jak to zrobić.

Poza tym potrzebuję zwykłych rzeczy z formularzami: kontrola błędów (form.name_of_field.errors), autopopulacja podczas edycji zadania itp., Więc robienie tego ręcznie za pomocą javascript i obsługi po stronie serwera żądania POST byłoby zbyt skomplikowane i błędne skłonny.

W ten sposób potrzebuję formularza (liczba kroków w każdej grupie jest ustawiana przez pole „number_of_steps” w modelu zadania):

+-----------------------------------+
| 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 | |
|             +-------------------+ |
+-----------------------------------+

Wszelkie pomoc, sugestie lub linki będą bardzo mile widziane.

questionAnswers(0)

yourAnswerToTheQuestion