2012-11-03 14 views
10

Chcę zaimplementować sekcję raportu w administratorze Django. Oznaczałoby to dodanie niestandardowej sekcji na stronie głównej administratora, gdzie zamiast listy modeli zobaczyłbym listę raportów. Chcę używać tabel administracyjnych Django z filtrami, sortowaniem, wszystko, jeśli to możliwe.Jak dodać sekcję raportu do administratora Django?

Jaki byłby "najlepszy" sposób osiągnięcia tego? Zdaję sobie sprawę, że jest to "duże" pytanie, więc nie pytam o fragmenty kodu koniecznie, podsumowanie wymaganych działań byłoby w porządku :)

P.S. Być raportem Mam na myśli model "zmyślony" według niestandardowych zapytań (zestaw zapytań lub jak to się nazywa).

P.S.2 Może to pytanie powinno brzmieć mniej więcej tak: Jak korzystać z funkcjonalności tabel administracyjnych Django we własnym widoku administratora?

P.S.3 A może istnieje sposób na udostępnienie istniejącego interfejsu administratora moim własnym danym. W ten sposób nie muszę robić nic więcej. Chcę tylko powiedzieć, że model pobiera te dane i wyświetla je w ładnym stoliku, który można sortować, filtrować itp.

+0

co masz na myśli przez "listę raportów"? Czy masz na myśli jakiś szczególny rodzaj raportu? –

+0

Co masz na myśli z ** raportami **? Możesz przygotować niestandardową stronę za pomocą django i zrobić wszystko, co chcesz.Ale używanie domyślnych filtrów Django w takim widoku i szablonie nie jest możliwe. Ale możesz łatwo napisać nasze filtry. Jak [skip strony indeksu administratora i przechodząc do szczegółowego] (http://stackoverflow.com/a/12424461/257972) – FallenAngel

+0

Znaczy masz teraz w opiekunie głównej Django nazwę aplikacji jako nagłówka sekcji specjalistycznej (z niebieskim tłem), a następnie listę modeli tej aplikacji. Chcę sekcji z nagłówkiem Reports, a następnie listę raportów, takich jak Sprzedaż, Bestsellery ... prawie o każdej tabeli, która nie ma modelu za nią, ale jest skomponowana przez jakiś kod. Zamiast rzeczywistego modelu miałbym za sobą model "zmyślony". –

Odpowiedz

9

Próbujesz dodać nowe strony do administratora django.

Ta sekcja wyjaśnia dokładnie, w jaki sposób można to zrobić - https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-views-to-admin-sites

Podstawowym założeniem jest to, aby dodać nowe adresy URL, które mają w swojej urls.py jakby dodawania adresów URL stron „front-end”. Podstawową różnicą jest to, że te nowe adresy URL, które dodajesz, powinny zaczynać się od ^admin/ i wyglądać jak np. ^admin/my_special_link_in_admin, a ten adres URL wskaże Twoją własną niestandardową funkcję widoku w wybranej przez ciebie lokalizacji.

E.g.

(r'^admin/my_special_link_in_admin/$', 'my_custom_admin_app.views.special_admin_page'), 

To jest sposób na pełną personalizację. Jest to bardzo dobry tutorial które znajdują się tutaj - http://brandonkonkle.com/blog/2010/oct/4/django-admin-customization-examples/

Ponadto, jeśli nie chcesz robić zbyt dużo pracy, należy rozważyć użycie Django Admin Plus - https://github.com/jsocol/django-adminplus

lub django-admin-widoki - https://github.com/frankwiles/django-admin-views

+0

Tak, chcę nowych stron, ale nie wiem chcę używać własnych szablonów tabel i funkcji. To ogromna praca! :) Chcę, aby miły administrator Django pracował również dla niestandardowych danych, a nie tylko danych modelu: D –

+0

Yup. Rozumiem. Użyj https://github.com/jsocol/django-adminplus, jak wspomniano w mojej zaktualizowanej odpowiedzi. –

+0

Czy ten administrator będzie musiał wziąć na przykład moje ręce do pisania tabel? –

0

Dodatkowo, nie jest to miłe aplikacja:

django-admin-reports

"admin_reports" jest Djan uruchom aplikację, aby łatwo tworzyć raporty agregacji danych do wyświetlania wewnątrz administratora Django.

Administrator Django koncentruje się głównie na modelach i zapewnia szybki i prosty sposób tworzenia interfejsu GUI dla interfejsu CRUD, ale często istnieje potrzeba wyświetlania danych w formie zbiorczej, tutaj jest przydatna funkcja admin_reports.

Chodzi o to, aby mieć klasę podobną do ModelAdmin (od django.contrib.admin), która umożliwia wyświetlanie danych pochodnych koncentrujących się na implementacji procedury agregacji.

Powiązane problemy