为什么django-lint告诉我`auto_now_add`已被弃用?

时间:2012-04-17 16:15:42

标签: python django datetime last-modified pylint

你好Djangonauts:

我用django-lint检查了我的项目,产生了:

W:211,16:MyModel: timestamp: Uses superceded auto_now or auto_now_add

commit message

auto_now/auto_now_add not technically deprecated, but they still suck.

他们为什么说auto_now / auto_now_add“suck”?使用这两个字段参数实现创建/上次更新的模式没有问题。

这种模式有更好的方法吗?自定义字段类?为什么(如果这种方法更好)它还没有被集成到Django中?

2 个答案:

答案 0 :(得分:12)

正确的解决方法是将callable传递给返回适当日期时间的字段default,例如datetime.datetime.now

答案 1 :(得分:2)

auto_nowauto_now_add被视为有害,因为您绝对无法通过django更改值(例如,在管理界面中)。

这与其他旗帜无关,而django人通常不喜欢那种魔法。