我使用save()
方法覆盖models.Model
方法,以便在将数据保存到数据库之前操作一些属性(例如,发出Google MAPS API调用以获取地理位置地址)。
但是,我不希望每次通过管理面板更新条目时都会向Google发出电话,但只有在我插入新条目时才会这样做。
有没有简单的方法(而不是在save()
方法中对数据库运行查询并检查对象是否已存在)?
梅尔
答案 0 :(得分:1)
https://docs.djangoproject.com/en/dev/ref/models/querysets/#get-or-create
基本上,你可以检查你的对象是否存在并运行你的更新,或者如果对象不是你的数据库就创建一个新的
答案 1 :(得分:1)
在save()
上检查该对象的主键def save(self, *args, **kwargs):
if self.pk:
# this is executed when updating (pk exists)
else:
# this is executed when inserting
super(Model, self).save(*args, **kwargs)
类似的东西
彻底阅读链接,那里有一个问题
编辑:陷阱,阅读更多陷阱的评论