Django-fr

Forum

#1 25-01-2012 11:43:33

aangeli
Membre
Inscription : 19-01-2012
Messages : 2

Dériver la méthode save() du BaseModelFormset

J'essaie de modifier le formset de la change_list correspondant à un objet dérivant du type ModelAdmin et qui contient des champs éditables en ligne:

class WeeklyPlaylistAdmin(admin.ModelAdmin):
    list_display = (schedule_video_name, schedule_screen_name, schedule_year, 'week', 'position', 'position_link')
    list_editable = ('position',)
    
    def get_changelist_formset(self, request, **kwargs):
        return modelformset_factory(self.model,
                        self.get_changelist_form(request), extra=0,
                        fields=self.list_editable,
                        formset=WeeklyPlaylistAdminFormSet)

J'ai donc défini mon propre model formset:

class WeeklyPlaylistAdminFormSet(BaseModelFormSet):
    def save(self, commit=True):
        instances = super(WeeklyPlaylistAdminFormSet, self).save_existing_objects(commit)

        do_something_with_instances(instances)

        return instances

Il semble cependant que la méthode save() ci-dessus ne soit jamais appelée, car la méthode do_something_with_instances() ne l'est pas, alors que les objets du formset sont bien enregistrés après coup : quelle est la méthode à dériver pour contrôler les opérations de sauvegarde des objets modifiés dans le formset?

D'avance merci,
Adrien

Hors ligne

Pied de page des forums