django-adminplus er en Django app som har som mål å være den minste mulig forlengelse til den utmerkede Django admin komponent som lar deg legge admin utsikt som ikke kan relateres til modeller.
Det er pakker der ute, som Nexus og django-admin-verktøy som erstatter hele admin. Nexus støtter å legge helt nye "moduler" (Django modell admin er en standard modul), men det synes å være mye av kjele plate kode for å gjøre det. Django-admin-verktøy ikke, så vidt jeg kan fortelle, støtte legge tilpassede sider.
All AdminPlus gjør er at du kan legge til enkle definerte visninger (vel, de kan være så komplisert som du liker!) Uten å rote rundt med kapre nettadresser, og gi linker til dem rett i admin-indeksen.
Installere AdminPlus
Grab AdminPlus fra github med pip:
PIP installere -e git: //github.com/jsocol/django-adminplus
Å bruke AdminPlus i Django prosjekt, må du erstatte django.contrib.admin.site, som er en forekomst av django.contrib.admin.sites.AdminSite. Jeg anbefaler at du gjør dette i urls.py rett før du ringer admin.autodiscover ():
# Urls.py
fra django.contrib import admin
fra adminplus import AdminSitePlus
admin.site = AdminSitePlus ()
admin.autodiscover ()
urlpatterns = mønstre ('',
& Nbsp; # ...
& Nbsp; # Inkluder admin URL conf som normalt.
& Nbsp; (r '^ admin', inkluderer (admin.site.urls)),
& Nbsp; # ...
)
Gratulerer! Du bruker nå AdminPlus.
Ved hjelp AdminPlus
Så nå som du har installert AdminPlus, vil du ønsker å bruke den. AdminPlus er 100% kompatibel med den innebygde admin-modulen, så hvis du har vært å bruke det, bør du ikke trenger å endre noe.
AdminPlus tilbyr en ny funksjon, admin.site.register_view, for å feste vilkår utsikt til admin:
# Someapp / admin.py
# Antar du har erstattet django.contrib.admin.site som ovenfor.
fra django.contrib import admin
def my_view (forespørsel, * args, ** kwargs):
& Nbsp; pass
admin.site.register_view ('somepath', my_view)
# Og selvfølgelig fortsatt fungerer dette:
fra someapp.models import MyModel
admin.site.register (MyModel)
Nå vil my_view være tilgjengelig til admin / somepath og det vil være en link til den i Custom utsnittene på admin indeksen.
register_view tar en tredje, valgfritt argument: en vennlig navn for visning i listen over egendefinerte visninger. For eksempel:
def my_view (forespørsel):
& Nbsp; "" "Har noe fancy!" ""
admin.site.register_view ('somepath', my_view, 'My Jobb Admin View!')
. Alle registrerte visninger er innpakket i admin.site.admin_view
Krav :
- Python
- Django
Kommentarer ikke funnet