django-adminplus jest aplikacja Django, który ma być najmniejsza możliwa rozbudowa do doskonałego administratora komponentu Django, który pozwala dodać administratora poglądy, które nie są powiązane z modeli.
Istnieją pakiety tam, jak Nexus i django-admin-narzędzia, które zastępują całą administratora. Nexus obsługuje dodawanie zupełnie nowe "Moduły" (model Django jest moduł domyślne), ale nie wydaje się być dużo kotła kodu płyty to zrobić. django-admin-narzędzia, nie, o ile wiem, dodając wsparcie własne strony.
Wszystko AdminPlus nie jest pozwalają na dodawanie prostych widoków niestandardowych (no, może być tak skomplikowane, jak chcesz!) Bez mucking z adresów URL, porwanie, i umieszcza odnośniki do nich prawo w indeksie administratora.
Instalacja AdminPlus
Grab AdminPlus z github z pip:
pip install -e git: //github.com/jsocol/django-adminplus
Aby korzystać AdminPlus w projekcie Django, musisz wymienić django.contrib.admin.site, który jest instancją django.contrib.admin.sites.AdminSite. Polecam ten sposób w urls.py tuż przed wywołaniem admin.autodiscover ():
# Urls.py
z django.contrib importu admina
z adminplus importu AdminSitePlus
admin.site = AdminSitePlus ()
admin.autodiscover ()
urlpatterns = patterns ('',
& Nbsp; # ...
& Nbsp; # Include conf Administrator URL jako normalne.
& Nbsp; (r '^ admin', to (admin.site.urls)),
& Nbsp; # ...
)
Gratulujemy! Jesteś teraz używając AdminPlus.
Korzystanie AdminPlus
Więc teraz, że masz zainstalowane AdminPlus, będziemy chcieli z niego korzystać. AdminPlus jest w 100% kompatybilny z wbudowanym modułem administracyjnym, więc jeśli już przy użyciu, że nie powinien mieć nic zmieniać.
AdminPlus oferuje nową funkcję, admin.site.register_view, aby dołączyć dowolne widoki na admina:
# Someapp / admin.py
# Zakładając, że zastąpiliśmy django.contrib.admin.site jak wyżej.
z django.contrib importu admina
my_view def (żądanie, * args, ** kwargs):
& Nbsp; karnet
admin.site.register_view ("somepath", my_view)
# I oczywiście, to nadal działa:
z someapp.models importu MyModel
admin.site.register (MyModel)
Teraz my_view być dostępne w admin / somepath i tam będzie link do niego w sekcji Widoki własne indeksu administratora.
register_view zajmuje 3., opcjonalny argument: przyjazną nazwę dla wyświetlacza na liście widoków niestandardowych. Na przykład:
my_view def (wniosek):
& Nbsp; "" "Czy coś ochotę!" ""
admin.site.register_view ("somepath", my_view, "Mój Fancy Admin Zobacz!")
. Wszystkie zarejestrowane poglądy są zapakowane w admin.site.admin_view
Wymagania :
- Python
- Django
Komentarze nie znaleziono