8

嗨,Djangonauts 伙伴们:

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

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

提交消息:

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

为什么他们说 auto_now/auto_now_add “suck”?使用这两个字段参数实现 created/last-updated 模式没有问题。

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

4

2 回答 2

12

正确的解决方法是将可调用对象作为default返回适当日期时间的字段传递,例如datetime.datetime.now.

于 2012-04-17T16:18:06.367 回答
2

auto_now并且auto_now_add被认为是有害的,因为您绝对无法通过 django 更改值(例如,在管理界面中)。

这与其他标志不一致,django 人通常不喜欢这种魔法。

于 2012-04-17T16:25:16.957 回答