2010-03-01 5 views
7

Возможно ли, что Django автоматически удалит формы, отсутствующие в запросе?Динамически Удалить встроенные формы в Django

Так, например, если у меня было три встроенных набора форм, представленных в HTML, когда я загрузил свою страницу редактирования, и я использую javascript для удаления двух из них, когда запрос обрабатывается. Django видит, что эти две формы больше не являются их и удаляют.

ответ

8

Да, это возможно с использованием нескольких различных методов.

Прежде всего, нужно скопировать способ, которым это делается в приложении администратора Django, который должен иметь флажок с меткой, подобной «Удалить?». Затем, когда вы обрабатываете набор форм позже в запросе POST, вы проверяете, установлен ли флажок True, и если да, удалите запись. Это, вероятно, не то, что вы ищете, хотя, поскольку вы использовали слово «динамически» в заголовке вопроса :)

Итак, второй, динамический метод должен был бы использовать Javascript для «скрытия» удаленной записи на и установите для параметра «Удалить» значение «Истина». Затем вы обрабатываете набор форм так же, как и первый вариант выше. См. django-dynamic-formset для удаления кода.

Третьим, динамическим способом является использование Ajax, и когда нажата кнопка удаления, JS вызовет удаление, чтобы удалить запись, а также удалить набор форм из HTML. Я не могу указать вам на какой-либо примерный код для этого, но я думаю, что второй метод выше в любом случае лучше, потому что вы можете сохранить все свои проверки подлинности и стандартный код проверки формы в одном месте.

Смежные вопросы