2017-02-03 66 views
0

我需要保存模型之前修改某些值:Django的pre_save時不保存更改

@receiver(pre_save) 
def model_pre_save(sender, instance, *args, **kwargs): 
    print instance.path # prints "old_path" 
    instance.path = some_path() 
    print instance.path # prints "new_path" 

但保存instance.path後,仍然等於"old_path"

+0

pre_save不保存任何東西。這就是爲什麼它被稱爲pre_save – e4c5

+0

我在代碼中的另一個地方調用model.save()。 –

回答

4

pre_save例如更改沒有穿過,你應該使用update_fields按照文檔

pre_save