3
M2M이 저장되도록 객체를 저장하려고합니다. 그런 다음 몇 가지 계산을 수행하고 저장된 객체에 필드를 설정하기 위해 M2M 필드를 읽고 싶습니다.save()에서 새로 생성 된 객체의 ID 얻기
class Item(models.Model):
name = models.CharField(max_length=20, unique=True)
product = models.ManyToManyField(SomeOtherModel, through='SomeTable')
def save(self, *args, **kwargs):
super(Item, self).save(*args, **kwargs)
m2m_items = SomeTable.objects.filter(item = self)
# DO SOME STUFF WITH THE M2M ITEMS
m2m_items가 표시되지 않습니다. 이걸 얻을 수있는 방법이 있습니까?
죄송합니다. 내 정보가 잘못되었습니다. 나는 내 질문을 다시 썼다. 내가하는 일은 many2many 아이템을 얻으려고 노력하는 것입니다. 그러나 어떤 이유에서든 그들이 나타나지 않을 것입니다. – Stephan
답장을 보내 주셔서 감사합니다. 이제 m2m_changed 신호를 사용하려고합니다. models.signals.m2m_changed.connect (set_total_price, sender = Deal.product.through) 어떤 이유로 든 내 set_total_price 메소드를 호출하지 않습니다. 그것은 post_save 신호와 함께 작동 ... 아 글쎄, 나는 다시 시도 할 몇 가지있어. 고마워. – Stephan
추가 정보 : save_formset에서 인스턴스를 반복하여 M2M을 읽었습니다. 그런 다음 저장된 항목을 불러와 새로운 값으로 저장했습니다. – Stephan