Elegancki sposób na dynamiczne dodawanie pól w Django Form?

0

Próbuję zrobić formularz w którym będzie określona ilość pól i user klikając będzie miał możliwość dodania/usunięcia następnego pola do tego formularza (chciałbym to zrobić bez odświeżania).

Zrobić JavaScript do tego to nie problem, zastanawiam się tylko jak najbardziej elegancko to zrobić i jak elegancko to zrobić od strony Pythona, żeby potem zidentyfikować te dodane przez
Usera w UI-u pola. Myślałem umieścić jakąś stałą w kodzie Pythona i ją używać jako id np. wyrenderowanych automatycznie pól formularza, a potem modyfikując tylko końcówkę dodawać następne pola na żądanie użytkownika, na przykład:

wyrenderowane automatycznie pola będą miały IDki: "form_field_1", "form_field_2", "form_field_3", a dodane przez użytkownika będą to obcinać i dodawać następne numery "form_field_4" etc.

Zastanawiam się czy taki pomysł jest okej, czy nie istnieje jakieś może bardziej eleganckie rozwiązanie na takie sytuacje? Myślałem jeszcze ew. formsety tutaj wdrożyć zamiast zwykłych formularzy, dzięki którym (z tego co mi się udało doczytać) można by łatwo walidację zrobić czy jest odpowiednia ilość(min/max) pól(formularzy) po stronie backendu.

0

Zdecydowanie polecam użyć tutaj formsetów, bawienie się w pisanie tego od zera jest raz, że bez sensu, a dwa, że upierdliwe jak cholera. O ile przy samym tworzeniu jeszcze nie jest tak źle, to przy edycji jest tyle edge case'ów, że ci się odechce :)
Nigdy natomiast nie udało mi się znaleźć sensownej libki do obsługi formsetów na froncie. Zawsze to sam pisałem. Możesz podejrzeć jak to jest zrobione w adminie: https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/inlines.js

1 użytkowników online, w tym zalogowanych: 0, gości: 1