Доступ к обновленным полям M2M в переопределенном save () в админке django - PullRequest
2 голосов
/ 18 июня 2010

Я хотел бы использовать обновленные пользователем значения ManyToManyField в переопределенном методе save () модели при сохранении экземпляра в admin.

Оказывается, что django по своей конструкции не обновляетПоле M2M перед вызовом save (), но только после завершения save () как часть формы save ...

, например, в обеих приведенных ниже командах печати значения отображаются какдо того, как пользователь обновил экземпляр модели в admin:

class MyClass(models.Model):
    an_m2m_field = models.ManyToManyField(MyOtherCLass)
    def save(self, *args, **kwargs):
        print self.an_m2m_field.all()
        super(MyClass, self).save(*args, **kwargs) # Call the "real" save() method.
        print self.an_m2m_field.all()

Как получить доступ к новым значениям этого поля в переопределенной функции save ()?

1 Ответ

5 голосов
/ 19 июня 2010

M2M поля сохраняются независимо от модели.Чтобы действовать при изменениях поля M2M, зарегистрируйтесь в сигнале m2m_changed поля M2M, как указано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...