레코드를 저장 한 후 즉시 업데이트하려고합니다. 이 예는 무의미한 것 같다하지만 데이터가 몇 가지 추가 정보를 얻을하고 기록 갱신에 저장 한 후 우리는 API를 사용할 필요가 상상할 수 : 그래서django의 post_save를 사용하여 즉시 인스턴스를 업데이트하십시오.
def my_handler(sender, instance=False, **kwargs):
t = Test.objects.filter(id=instance.id)
t.blah = 'hello'
t.save()
class Test(models.Model):
title = models.CharField('title', max_length=200)
blah = models.CharField('blah', max_length=200)
post_save.connect(my_handler, sender=Test)
'추가'필드가 '안녕하세요'로 설정하도록되어를 각 저장 후. 옳은? 하지만 작동하지 않습니다.
아이디어가 있으십니까?
어쩌면 어떻게 작동하지 않는지 설명 할 수 있습니까? 처음에는 홍당무로, 무한 루프를 만드는 것처럼 보입니다. 왜냐하면 post_save 호출은 save를 호출하기 때문에 post_save 등을 호출해야하기 때문입니다. 장고가 재귀를 막고있을 가능성이 있습니까? –
거기에 무한 루프가 있습니다. t.save()가 post_save 신호를 보낸 후 어떤 함수가 호출되는지 추측합니다 ... – stefanw
오, 나는 장고가 두 번째 저장 트리거를 저장하지 못하게했을 것입니다. post_save? 나는 그렇지 않다. 어떤 경우에 당신 말이 맞습니다. 그것은 무한 루프 일 것입니다. 하지만 루프가 보이지 않습니다. – givp