2011-07-21 1 views
0

J'ai un modèle que je ne veux pas que l'utilisateur ajoute/supprime manuellement des objets. Au lieu de cela, je veux avoir un bouton Get qui une fois cliqué, il exécute du code et met à jour automatiquement la base de données. J'ai été capable de faire des choses similaires en ajoutant ma propre action d'administration. Cependant, ajouter une action d'administration par défaut signifie que vous devez avoir au moins un objet pour votre modèle, vous sélectionnez cet objet et effectue une action. Je veux être en mesure d'effectuer mon action personnalisée sur un modèle vide (si je peux remplacer le bouton Ajouter par un bouton Obtenir sur la page d'index, ce sera parfait). Y a-t-il un moyen de le faire? Merci!remplacer Ajouter avec Get sur le site d'administration django

Répondre

0

Vous pouvez substituer la méthode add_view du modèle d'administration django et faire ce que vous avez envie d'avoir cette vue si vous le souhaitez. Poke autour à travers le code ModelAdmin et vous pouvez voir ce qu'il fait par défaut

vous pouvez également jeter un oeil à ce projet: https://github.com/imtapps/django-admin-ext et voir un exemple de la façon d'enregistrer vos propres urls pour un administrateur ... de sorte que vous pourriez faire votre point de vue quelque chose comme admin/myproject/myapp/modèle/get et avoir faire ce que vous voulez ...

0
  1. vous pouvez empêcher les utilisateurs d'ajouter de nouveaux objets en supprimant l'autorisation « peut ajouter ModelName » de cet utilisateur. S'ils sont un super-utilisateur, cela ne les empêchera pas de le faire, cependant.

  2. Les actions d'administration sont conçues pour être exécutées sur des instances spécifiques du modèle; Si ce n'est pas ce que fait votre code, vous ne devriez probablement pas suivre cette route particulière. Vous pouvez override the admin template pour votre modèle et ajouter un nouveau bouton ou un lien à votre vue personnalisée. Vous pouvez également supprimer complètement le bouton Ajouter en l'éliminant de votre modèle, mais je vous recommande d'utiliser des autorisations à la place.

Questions connexes