2010-01-24 1 views
0

Je cherche à ajouter une méthode que mon modèle Ticket a appelé processus à l'administrateur, afin que je puisse cliquer sur un lien dans la vue de liste, et "traiter" mon instance de modèle (faire un appel API derrière les scènes).Django: Existe-t-il un moyen d'ajouter une méthode d'instance de modèle à l'administrateur?

Pour clarifier:

class Ticket(models.Model): 
    title = models.CharField(max_length=255) 

    def process(self): 
     ... hardcore processing action ... 

je besoin d'ajouter la méthode process() directement à l'administrateur sans utiliser une fonction distincte.

Répondre

4

Vous avez juste besoin de fournir une petite méthode dans votre classe ModelAdmin qui renvoie un lien pointant vers une vue qui appelle votre méthode de modèle, et ajouter le nom de cette méthode au tuple list_display de modeladmin. Vous devrez évidemment également définir cette vue elle-même, et une URL qui pointe vers elle.

+0

Merci Daniel. Cela a fonctionné parfaitement. – orokusaki

2

Oui, c'est possible; Consultez cette documentation, tout ce dont vous avez besoin:

http://docs.djangoproject.com/en/1.1/ref/contrib/admin/actions/#ref-contrib-admin-actions

+0

Je ne cherche pas ça. Avez-vous lu ma question? J'ai déjà trouvé ça ici et sur les docs Django. Je cherche un moyen d'ajouter une méthode MODÈLE à l'administrateur. Pas une fonction personnalisée. – orokusaki

+0

Vous avez changé votre question. Et pourquoi n'ajoutez-vous pas une fonction personnalisée qui appelle la méthode du modèle? Est-ce que le même travail je suppose? – fijter

Questions connexes