保存期间更新其他字段

时间:2013-04-04 21:35:20

标签: django django-models django-signals

我已经为UserProfile模型声明了一个更新其他字段的信号。存储的数据来自Web服务。

 post_save.connect(user_profile_update, sender=UserProfile)

在user_profile_update中,我这样做了:

 profile = get_object_or_404(UserProfile, user=instance) 
 profile.province = xml.duzeltilmisil #this comes from a web service
 profile.save()

我收到了这个错误:

 'NoneType' object is not callable
 profile.save()

还有一个错误,但我做的也是递归的。当我更新UserProfile时,它应该再次触发user_profile_update。

在保存期间有没有合理的方法来更新这些字段?

1 个答案:

答案 0 :(得分:0)

由于您正在解析地址,因此它是一种更好的方法来处理视图中的解析,而不是作为信号。

信号通常用于对其他型号进行微小更新。

所以,你的代码可以是:

profile = get_object_or_404(UserProfile, user=instance) 
profile.province = xml.duzeltilmisil #this comes from a web service

//parse the address here, and then save the models
profile.save()