Zbiorowa edycja w panelu administracyjnym Django

Jeśli w panelu administracyjnym Django brakowało Ci możliwości jednoczesnej edycji wielu obiektów, teraz masz szansę to zmienić.

Wielbiciele frameworka Django zapewne zgodzą się ze stwierdzeniem, że jednym z jego większych atutów jest automatycznie generowany panel administracyjny, który odpowiednio dostosowany sprawdza się w całkiem szerokiej gamie aplikacji webowych. Jednak wraz z rosnącą ilością danych zarządzanie nimi w sposób zbiorowy staje się co raz trudniejsze, a czasami wręcz niemożliwe. System akcji częściowo rozwiązuje problem, jednak wymaga wcześniejszego zdefiniowania, jaka czynność ma być przeprowadzona zbiorowo na zaznaczonych obiektach i nie zapewnia żadnej interaktywności.

Django Mass Change Admin Site Extension (DMCASE), czyli rozszerzenie panelu administracyjnego pozwalające na zbiorowe zarządzanie obiektami pozwala wybrać, które elementy chcemy edytować, a następnie zmieniać zawartość poszczególnych pól na stronie podobnej do zwykłej strony edycji obiektu. Różnica polega na tym, że dodatkowo zaznaczamy zmiany z którego z pól mają zostać zaaplikowane do wszystkich uprzednio zaznaczonych obiektów. Sposób działania najprościej prześledzić na obrazkach zamieszczonych w oryginalnym wpisie.

Rozszerzenie jest dostępne na licencji BSD, czyli można go używać dowolnie pod warunkiem, że załączana będzie jego licencja. Link do pobierania w oryginalnym wpisie. Miłej zabawy!

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

  1. Awatar bwana
    bwana

    Hm, odpaliłem i faktycznie działa. Problem w tym, że czasami potrzebuję zmienić coś masowo w 1000 wpisów, a one nie mieszczą się na jednej stronie w panelu admina i nie mogę wówczas skorzystać z tego udogodnienia bo wymaga on zaznaczenia obiektów do edycji. Czy autor ma jakiś pomysł na rozwiązanie tej niedogodności?

    1. Awatar sadaszewski
      sadaszewski

      Hmm, racja. Pomysł mam taki, żeby zmienić trochę architekturę tego rozwiązania – oprzeć listę edytowanych obiektów o queryset, a nie na wyciąganej bezpośrednio z request’a z panelu admin’a liście id obiektów. Wówczas do systemu akcji podpięta mogłaby pozostać wersja, która generuje queryset z request’a adminowego, a niezależnie można by przygotować stronę, która pozwala skonstruować dowolny queryset. Mogłoby to być oparte o system filtrów w panelu admin’a albo o oddzielną stronkę, gdzie byłby filtr dla każdego pola albo zupełnie custom-owe zapytanie SQL-owe. Możliwości jest wiele, myślę jednak, że najważniejsze było zrobić ten pierwszy krok właśnie po to, żeby przeczytać takie uwagi.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *