Как переопределить сохранение формы Django admin Inline?
Если вы работаете с Django admin и используете inline формы, возможно вам понадобится переопределить сохранение формы для выполнения дополнительных действий. В этой статье мы расскажем вам, как это сделать.
Шаг 1: Создание класса для переопределения
Для того чтобы переопределить сохранение формы inline, вам нужно создать новый класс и унаследовать его от нужного вам inline класса. Затем определить метод save_formset.
class CustomInline(admin.TabularInline):
model = YourModel
# other inline properties
def save_formset(self, request, form, formset, change):
# your custom logic here
super().save_formset(request, form, formset, change)
Шаг 2: Подключение к админке
После того как вы создали класс для переопределения сохранения формы, вам нужно подключить его к админке. Для этого вам потребуется создать новый класс админки и использовать метод InlineModelAdmin.
class YourModelAdmin(admin.ModelAdmin):
inlines = [CustomInline]
# other admin properties
Шаг 3: Дополнительные действия
Теперь вы можете определить нужные вам дополнительные действия в методе save_formset вашего переопределенного класса. Например, вы можете добавить логирование или выполнить какие-то действия перед или после сохранения формы.
Заключение
Теперь вы знаете, как переопределить сохранение формы в Django admin Inline. Следуя этим шагам, вы сможете добавить нужные вам дополнительные действия при сохранении формы inline.
Коллеги, не подскажите такой момент.
Есть 2 модели:
1.Документ "Приходная накладная" с полями Номер, Дата. (не важно)
2. Строка документа – с полями товар, количество, сумма.
Сделал Форму, сделал вьюху, сделал шаблон. Но проблема в том, что количество строк фиксировано. Не могу придумать, как сделать кнопку "Добавить строку" и "Удалить строку", чтобы по нажатию добавлялись новые строки в документ. Думал с помощью JS, но оказалось, что он не хочет добавлять строку с элементом шаблонизатора {{ form_str }}, выдает ошибку.
Пока писал вопрос, пришла идея сделать добавление строк так же, как добавляли комментарии в наши посты. Попробую так.
Миха куда пропал! Хотим стримы
Михаил – спасибо вам за ваш труд!