Comment remplacer Django admin vues?
Je veux ajouter un bouton de téléchargement par défaut de Django admin, comme indiqué ci-dessous:
Pour ce faire j'ai changé le admin/index.html modèle à ajouter le bouton, mais comment puis-je remplacer l'administrateur de la vue afin de les traiter?
Ce que je veux réaliser est d'afficher un message de réussite, ou le message d'erreur, une fois le fichier téléchargé.
Voir cette FAQ sur Django wiki. Pas besoin de surcharger/sous-classe
AdminSite
.OriginalL'auteur jul | 2012-09-07
Vous devez vous connecter pour publier un commentaire.
La vue index est sur la
AdminSite
instance. Pour le remplacer, vous devez créer un personnaliséAdminSite
sous-classe (c'est à dire, ne pas utiliserdjango.contrib.admin.site
plus):Vous pourriez voulez faire référence à la méthode originale: https://github.com/django/django/blob/1.4.1/django/contrib/admin/sites.py
Ensuite, vous créez une instance de cette classe, et l'utilisation de cette instance, plutôt que de
admin.site
pour enregistrer vos modèles.Puis, plus tard:
Vous pouvez trouver plus de détails et d'exemples: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adminsite-objects
Que la barre latérale de lui-même est rempli par le contexte ajoutés par le biais de la vue index. La seule façon d'ajouter plus de contexte est de remplacer la vue "index", et la seule façon de le faire est à la sous-classe
AdminSite
.Recommandez-vous de faire cela d'une autre application?
Est-ce aussi un moyen d'ajouter un autre lien entre
'Add'
et'Change'
, qui peuvent être trouvés avec le nom du modèle? J'ai l'intention d'ajouter un lien'View only'
avec cette. thxJ'ai tellement de nombreux modèles dans mon projet..Dois-je m'inscrire à tous les modèles de cette nouvelle admin?
OriginalL'auteur Chris Pratt