django-AdminPlus est une application Django qui vise à être la plus petite possible extension à l'excellent composant d'administration de Django qui vous permet d'ajouter des visites de l'administrateur qui ne sont pas liés à des modèles.
Il ya des paquets là-bas, comme Nexus et django-admin-outils qui remplacent l'ensemble administrateur. Supports Nexus ajoutant complètement nouveaux "modules" (le modèle administration de Django est un module par défaut), mais il semble y avoir beaucoup de chaudière code de plaque pour le faire. django-admin-tools ne, autant que je peux dire, l'ajout du support des pages personnalisées.
Tout ne est AdminPlus vous permet d'ajouter des vues personnalisées simples (bien, ils peuvent être aussi complexes que vous le souhaitez!) Sans déblayage à propos des URL de détournement, et de fournir des liens vers les droit à l'index d'administration.
Installation AdminPlus
Faire AdminPlus de github avec pip:
pip installer git -e: //github.com/jsocol/django-adminplus
Pour utiliser AdminPlus dans votre projet Django, vous aurez besoin de remplacer django.contrib.admin.site, qui est une instance de django.contrib.admin.sites.AdminSite. Je recommande de faire cela dans urls.py droit avant d'appeler admin.autodiscover ():
# Urls.py
de django.contrib importation administrateur
de AdminSitePlus d'importation AdminPlus
admin.site AdminSitePlus = ()
admin.autodiscover ()
urlpatterns = patterns ('',
& Nbsp; # ...
& Nbsp; # Inclure l'administrateur URL conf comme d'habitude.
& Nbsp; (r '^ admin', inclure (admin.site.urls)),
& Nbsp; # ...
)
Félicitations! Vous êtes maintenant en utilisant AdminPlus.
Utilisation AdminPlus
Alors, maintenant que vous avez installé AdminPlus, vous aurez envie de l'utiliser. AdminPlus est 100% compatible avec l'intégré dans le module d'administration, donc si vous avez été l'aide que vous ne devriez pas avoir à changer quoi que ce soit.
AdminPlus offre une nouvelle fonction, admin.site.register_view, pour fixer vues arbitraires à l'administrateur:
# Someapp / admin.py
# En supposant que vous avez remplacé django.contrib.admin.site comme ci-dessus.
de django.contrib importation administrateur
def my_view (demande, * args, ** kwargs):
& Nbsp; passe
admin.site.register_view ('somepath', my_view)
# Et bien sûr, cela fonctionne encore:
de someapp.models MyModel d'importation
admin.site.register (MyModel)
Maintenant my_view sera accessible à admin / somepath et il y aura un lien vers elle dans la mesure de l'indice de la section admin Vues.
register_view prend une 3ème, argument optionnel: un nom convivial pour l'affichage dans la liste des vues personnalisées. Par exemple:
def my_view (demande):
& Nbsp; "" "Est-ce que quelque chose de fantaisie!" ""
admin.site.register_view ('somepath', my_view, 'Mon Fantaisie Admin Voir!)
. Toutes les vues enregistrées sont enveloppés dans admin.site.admin_view
Exigences :
- Python
- Django
Commentaires non trouvées