Django models 访问django';中覆盖的save()中更新的M2M字段;s管理员

Django models 访问django';中覆盖的save()中更新的M2M字段;s管理员,django-models,django-admin,django-forms,overriding,Django Models,Django Admin,Django Forms,Overriding,在admin中保存实例时,我希望在模型的重写save()方法中使用ManyToManyField的用户更新值 事实证明,根据设计,django在调用save()之前不会更新M2M字段,而只是在save()作为表单save的一部分完成之后 e、 g.在以下两个打印命令中,显示的值都是用户在admin中更新模型实例之前的值: class MyClass(models.Model): an_m2m_field = models.ManyToManyField(MyOtherCLass)

在admin中保存实例时,我希望在模型的重写save()方法中使用ManyToManyField的用户更新值

事实证明,根据设计,django在调用save()之前不会更新M2M字段,而只是在save()作为表单save的一部分完成之后

e、 g.在以下两个打印命令中,显示的值都是用户在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()

如何在override save()中访问此字段的新值?

M2M字段独立于模型保存。要对M2M场的变化采取行动,请注册到M2M场的M2M_变化信号,如详细说明所示