2010-06-18 2 views
2

admin에 인스턴스를 저장할 때 모델의 재정의 된 save() 메소드에서 ManyToManyField의 사용자 업데이트 값을 사용하고 싶습니다.django의 관리자에서 overriden save()에서 업데이트 된 M2M 필드에 액세스

예를 들어, ...) 설계에 의해, 장고는하지만 단지 (저장 후) (save()를 호출하기 전에 M2M 필드를 업데이트하지 않는 것으로 나타났다가 저장 형태의 일부로 완료 명령이 표시 값을 노호 모두 인쇄에 그 사용자가 관리자의 모델 인스턴스를 업데이트하기 전에의 위치 :

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() 

이 어떻게() 저장 재정이 필드의 새 값을 액세스 할 수 있습니까?

답변

5

M2M 필드는 모델과 독립적으로 저장됩니다. M2M 필드 변경에 대한 조치를 취하려면 M2M 필드의 m2m_changed 신호에 here으로 등록하십시오.

관련 문제