选项auto_now,auto_now_add和default是互斥的。这些选项中只有一个可能存在

时间:2017-08-25 04:16:52

标签: python django

当我在PyCharm中运行服务器时,我在控制台中收到了波纹管错误:

ERRORS:
frontend.Users.ctime: (fields.E160) The options auto_now, auto_now_add, and default are mutually exclusive. Only one of these options may be present.
frontend.Users.uptime: (fields.E160) The options auto_now, auto_now_add, and default are mutually exclusive. Only one of these options may be present.

我的模型Users代码如下:

class Users(models.Model):
    ctime = models.DateTimeField(auto_now_add=True, default=datetime.now())
    uptime = models.DateTimeField(auto_now=True, default=datetime.now())   

为什么我会收到此错误?

2 个答案:

答案 0 :(得分:1)

只需使用:

class Users(models.Model):
    ctime = models.DateTimeField(auto_now_add=True)
    uptime = models.DateTimeField(auto_now=True)

它会起作用。

说明:

这两者都是相互排斥的意味着你应该只使用其中一个,而不是两者。

答案 1 :(得分:0)

当表已经存在时,我只使用了 django.utils.timezone.now() 。主要区别与数据库设置有关。使用 auto_now 或 auto_now_add 选项时,模型字段将具有 editable=False,根据文档@ https://docs.djangoproject.com/en/3.2/ref/models/fields/#datetimefield