2009-10-15 11 views
0

J'utilise GenerickStackedInline qui est une sous-classe de InlineModelAdmin qui va à ModelAdmin. Lorsque je remplace la méthode save_model ... elle n'est pas appelée.Override de ModelAdmin.save_model non appelé

class LocatedItemStackedInline(generic.GenericStackedInline): 
    template = "admin/location_app/located_items/stacked.html" 
    model = LocatedItem 
    extra = 1 
    form = MyModelForm 
    raw_id_fields = ('location',) 

    def save_model(self, request, obj, form, change): 
     import ipdb;ipdb.set_trace() 
     super(LocatedItemStackedInline, self).save_model(request, obj, form, change) 

    def save_form(self, request, form, change): 
     import ipdb;ipdb.set_trace() 
     super(LocatedItemStackedInline, self).save_form(request, form, change) 

Alors, il me manque quelque chose?

Une idée?

Cordialement

+0

Trouvé que save_model est appelé dans contrib.admin.options mais ne sait toujours pas pourquoi le mien n'est pas appelé –

Répondre

2

Le problème était que je remplaçais la méthode save_model sur InlineAdmin au lieu de sur le ModelAdmin lui-même.

Maintenant est appelé ...

Acclamations.

0

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

décrit la fonction que vous parlez. Ma meilleure supposition est que vous êtes confus au sujet de quand et où cela sera appelé. Aussi, êtes-vous sûr de travailler avec la dernière révision? Editer: Je suppose que les objets ModelAdmin en ligne peuvent se comporter différemment, étant donné leur statut spécial.

+0

Pas vraiment parce que j'ai besoin de l'objet request pour utiliser des trucs des champs cachés dans le formulaire. Encore pourquoi je ne peux pas l'utiliser? Est documenté. N'est pas implémenté? –