Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Page d’administration personalisée

+2 votes

Comment ajouter une page d’administration dans django qui ne soit pas directement liée à un model : je voudrais une page où l’utilisateur peut soumettre des requetes à une API via un formulaire et ensuite traiter les résultats retournés par l’API pour éventuellement les ajouter à des models.

Je n’arrive pas à trouver comment faire dans la doc, il n’est question que de ModelAdmin et de page auto-générées.

demandé 8-Jun-2015 par lluuxx (192 points)

Peux tu stp, ns donner juste un peu plus de details sur ce que tu essayes de faire stp?

2 Réponses

+5 votes
 
Meilleure réponse

Il n'y a pas de moyen de faire ça automatiquement et facilement avec l'admin django de base.

Néanmoins, l'admin est une app ordinnaire, tu peux donc :

  • écraser ses templates pour insérer un bloc dynamiquement
  • écraser ses urls pour en insérer une dynamiquement
  • réutiliser ses templates pour que ta vue s'intègre dans son design.

Donc pour faire ta page, fais ta vue, donne lui une url du type /admin/tapage/ que tu insère avant l'admin, utilise un template qui fait un {% extends template/de/base/de/l'admin %} et tu auras ta page. Pour avoir un lien qui y mène, assure toi aussi d'overrider le template de l'index de l'admin en créeant dans ton app une copy de ce template modifé contenant ton lien, mais avec une arborescence similaire. L'override ne marche que si ton app est listée avant l'admin dans INSTALLED_APPS.

répondu 16-Jun-2015 par Sam (4,980 points)
sélectionné 16-Jun-2015 par lluuxx

Merci, j’ai également trouvé django-adminplus qui a le mérite de la simplicité et qui fait globalement ce que je veux. Je vais également regarder comment faire ça avec ta méthode pour en apprendre plus.

+3 votes
répondu 9-Jun-2015 par foxmask (2,874 points)
...