Анонс django-etc 1.3.0 — пользовательские формы в админке Django
Как быстро и просто создать страницу с пользовательской формой для административного интерфейса Django.
Если у вас иногда возникает необходимость в административном интерфейсе Джанго обрабатывать пользовательский ввод, например, иметь возможность выполнять параметризованные задания, то вам может пригодиться новый инструмент из django-etc 1.3.0.
Отнаследуйте свой класс от
Теперь в административном интерфейсе доступен раздел «Моя страница», после перехода в который пользователю будет предложено заполнить форму с полем «Это поле».
Создаём страницы для админки быстро и просто.
Отнаследуйте свой класс от
etc.admin.CustomModelPage
, определите в нём поля (как в модели), по которым будет создана форма на вашей новой странице. А далее остаётся лишь реализовать логику обработки пользовательских данных в .save()
. # admin.py
from etc.admin import CustomModelPage
class MyPage(CustomModelPage):
title = 'Моя страница' # Так можно указать название страницы
# Далее мы определяем поля, как в обычной модели.
my_field = models.CharField('Это поле', max_length=10)
def save(self):
# А здесь уже обрабатываем данные из self,
# например, self.my_field.
# self.bound_admin предоставляет вспомогательные методы,
# например, позволяет вывести сообщения для пользователей.
# а self.bound_request содержится объект текущего HTTP запроса.
self.bound_admin.message_success(self.bound_request, 'Очень хорошо!')
super().save()
# Регистрируем нашу страницу в админке Django.
MyPage.register()
Теперь в административном интерфейсе доступен раздел «Моя страница», после перехода в который пользователю будет предложено заполнить форму с полем «Это поле».
Создаём страницы для админки быстро и просто.
На заметку
Читайте нас в Twitter. Ссылка в самом низу страницы.