Django中更新和新条目之间的区别

时间:2011-07-08 08:24:00

标签: django

我使用save()方法覆盖models.Model方法,以便在将数据保存到数据库之前操作一些属性(例如,发出Google MAPS API调用以获取地理位置地址)。

但是,我不希望每次通过管理面板更新条目时都会向Google发出电话,但只有在我插入新条目时才会这样做。

有没有简单的方法(而不是在save()方法中对数据库运行查询并检查对象是否已存在)?

梅尔

2 个答案:

答案 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)

类似的东西

source

彻底阅读链接,那里有一个问题

编辑:陷阱,阅读更多陷阱的评论