昨天在vscode中运行Django项目时,由于一开始在models.py文件中使用了以下代码:
create_time = models.DateTimeField(verbose_name="入职时间", default="")
于是在终端运行以下命令时:
python manage.py makemigrations
python manage.py migrate
出现报错“django.core.exceptions.ValidationError: ["'' value has an invalid date format. It must be in YYYY-MM-DD format."]django.core.exceptions.ValidationError: ["'' 值的日期格式无效。它必须是 YYYY-MM-DD 格式。"]”,并且生成的数据表缺少“creat_time”。
此后将models.py中上文提到的那行代码按网友提供的修改方法进行修改,但是无论怎么修改最后还是会出现这个报错。后来自己决定新建一个项目,新项目models.py文件中代码去掉了"default”,仅使用:
create_time = models.DateTimeField(verbose_name="入职时间")
报错便消失了,经对比两个项目,发现了区别出现在了这个文件夹:
打开此文件夹,出问题的是以下文件:
将此文件打开:
发现问题所在,在最初执行“python manage.py migrate”命令后,生成了上图所示的代码,在后续对models.py中代码修改后仍然受到上图所示代码影响。于是在删除上图问题文件(仅保留必需文件)后,重新创建数据库,执行:
python manage.py makemigrations
python manage.py migrate
此后报错消失,可以成功创建数据表。