如果其中一个模型字段已更新,我必须在post_save中做一些额外的逻辑,但无法检查它是否已更新 .
试图覆盖这样的init方法
def __init__(self, *args, **kwargs):
super(Profile, self).__init__(*args, **kwargs)
self.__old_city = self.city
并在post_save检查
if instance.city != instance.__old_city:
#extra logic
但有一个例外
AttributeError:'Profile'对象没有属性'__old_city'
我做错了什么(除了使用信号:D)?
1 回答
多数民众赞成因为你使用名称错误 .
双下划线(名称管理)
从Python文档:
这意味着访问
instance.__old_city
你需要使用_className__attribute_name
所以
__old_city
将被破坏->
_Profile__old_city