gpt4 book ai didi

python - Django MySQL 完整性错误 : ("Field ' created_at' doesn't have a default value")

转载 作者:行者123 更新时间:2023-12-01 00:18:03 25 4
gpt4 key购买 nike

我是 Django 的新手。

IntegrityError: (1364, "Field 'created_at' doesn't have a default value") 

当我没有为我在 models.py 中定义的模型编写 created_at 时发生。

每次遇到这样的错误,我都会添加

created_at = models.DateTimeField(default=timezone.now, null=True)

到models.py 然后运行python manage.py makemigrations; python manage.py migrate --fake

可以吗? (我的意思是,它是否遵循 Django 最佳实践?)当我使用 Rails 时,我从未遇到过这样的问题。为什么 Django 不自动处理 created_at 列?

另外,我想知道为什么 --fake 选项可以消除这个错误。

版本

Django==1.11.5 
mysqlclient==1.3.12
Python 3.6.1

提前致谢。

最佳答案

您似乎希望在每次创建模型实例时都设置一个属性 created_at。有一种更简单的方法:

created_at = models.DateTimeField(auto_now_add=True)

这里是详细解释它的文档 https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.DateField.auto_now_add

关于python - Django MySQL 完整性错误 : ("Field ' created_at' doesn't have a default value"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46427743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com