2017-02-03 50 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