l campo @ManyToMany no se guarda al usar Django admin

Estoy experimentando un problema extraño que espero que alguien aquí pueda arrojar algo de luz.

Estoy anulando el método save () de un modelo para agregar algunos valores a un campo ManyToMany después de ejecutar super (). Mi problema es que cuando estoy guardando en Django admin, los valores parecen agregarse a la relación, pero luego se vuelven a vaciar.

Sin embargo, si lo hago desdemanage.py shell funciona sin problemas.

He puesto dos declaraciones de impresión allí y producen exactamente el mismo resultado, independientemente de si lo estoy ejecutando a través del administrador de Django o mediante shell.

class Store(models.Model):
    holidays = models.ManyToManyField(StoreHoliday, blank=True)
    copy_holidays_from = models.ForeignKey('Store', blank=True, null=True)

    def save(self):
        print '====  BEFORE SAVE:', self.holidays.all()
        super(Store, self).save()
        self.copy_holidays()
        print '====  AFTER SAVE:', self.holidays.all()

    def copy_holidays(self):
        if self.pk and self.copy_holidays_from:
            self.holidays.clear()
            for h in self.copy_holidays_from.holidays.all():
                self.holidays.add( h )

Esta es la salida de laprint declaraciones:

====  BEFORE SAVE: []
====  AFTER SAVE: [<StoreHoliday: 10 Mar 2010, Chuck Norris birthday (Closed)>]

¿Alguien tiene alguna sugerencia sobre lo que podría estar causando esto?

Editar Todos los cambios manuales en la relación m2m en save () parecen ser descartados por Django al guardar a través de la interfaz de administración. ¿Está relacionado con cómo procesa el formulario?

Respuestas a la pregunta(5)

Su respuesta a la pregunta