Django 1.7.6 BUG与DateTimeField(auto_now = True)和.update查询?

时间:2015-05-06 21:31:35

标签: python django postgresql django-queryset

我遇到了一个非常严重的错误,我花了几个小时来弄清楚为什么我无法连接Postgres数据库中的所有点。

我的django应用程序中有一个模型,其中包含以下字段:

last_modified_on = models.DateTimeField(auto_now=True)

我的代码中有一点使用

members.update(first_name=first_name,.....)

一切正常,除了一个字段外更新:

last_modified_on

在做了一些研究之后,我找到了this,但该修复的版本和日期非常值得怀疑。

有谁知道怎么了最重要的,解决它的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

  

认识到update()在SQL级别进行更新,因此确实如此   不要在模型上调用任何save()方法,也不要发出   pre_save或post_save信号(这是调用的结果   Model.save())。如果要更新模型的一堆记录   它有一个自定义的save()方法,循环它们并调用save(),就像   这样:

for m in YourModel.objects.filter(....):
    m.first_name = "First Name"
    m.save()

您还应该知道,如果您在模型中有一个客户save方法,则不会调用它。在安全区域。