Динамично Удалите встроенный formsets в Django

Действительно ли возможно иметь Django, автоматически удаляют formsets, которые не присутствуют в запросе?

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

8
задан BenMills 1 March 2010 в 15:57
поделиться

1 ответ

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

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

Поэтому второй, динамический, метод заключается в использовании Javascript для "скрытия" удаленной записи на странице и установке флажка удаления в True. Затем вы обрабатываете набор форм так же, как и в первом варианте выше. Смотрите django-dynamic-formset для кода удаления набора форм таким способом.

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

8
ответ дан 5 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: