django.core.exceptions.validationerror: [‘“”的值有一个错误的日期格式。它的格式应该是yyyy-mm-dd hh:mm[:ss[.uuuuuu]][tz] ‘

django.db.utils.InternalError: (1050, “Table ‘django_content_type’ already exists”)
首先,这两个错误根因差不多,我这边是因为,最开始是因为我把models里面的一个dateTimeField类型的字段,default = “” 了,结果就报了第一种错误,

    第一种错误解决方法,先把model对应默认值错误的字段改回来,(如果是插入字段的话,可以给字段赋值 blank=True, null=True)

    然后运行python manage.py migrate --fake (清理目前moudle的状态,因为我们是在migrate的时候报错,这个时候已经进行了makemigrations了),

    然后在 python manage.py makemigrations  python manage.py migrate

    顺序如下
python manage.py migrate --fake
python manage.py makemigrations
python manage.py migrate

只需要这样就好了
add_time = models.DateTimeField(default=datetime.now, verbose_name=“添加时间”)
vip_deadline = models.DateTimeField(blank=True, null=True, default=timezone.now, verbose_name=“vip失效日期”)

这个也可以尝试下
createtime = models.DateTimeField(blank=True,null=True,default=datetime.date(1900,1,1) verbose_name=‘创建时间’)

    但是,如果很不巧,这个时候的你已经跟我一样看其他博客犯下了错误,也就是自己把表删除了,因为Django是不是自己去删除表的,删除表之后,就会来到第二个错误,这个错误是表示,这个表已经注册到这个app上了。这个时候只能来硬操作了。

    第一步:删除数据库上的数据,有三个表是用来记录的,



    很明显,报错是报的是content_type,

    所以需要去content_type去删除数据,但是这个表示跟permission关联的。

    所以先去删除permission,再去删除content_type的数据,

    permission表是记录自己历史操作数据库的记录,

    而content_type是将表注册到那个app上面去,这就需要自己对应这自己的表去删除数据了。

    然后最后一张表migrations,这个表记录的是,perssion的操作在本地的那一个文件里面,因为我们makemigrations之后,其实是会生成一个sql数据,这个就保存在我们本地的项目里面,然后这个migrations就是记录这个文件名的。

    这个我的操作是全部都删除了(不会影响我们已有的数据)。

    ok,目前为止,我们的数据库的操作就结束了。

    然后我们就进行我们的本地文件操作。

    本地文件自然就是我们的那些自动生成的那些sql语句什么的了。这个目录在,最开始的那个入口(也就是去定义总url入口的app)/migrations

接下来的删除操作,注意红圈中的内容千万不要删除,至于为什么,我没去尝试追究,如果有已经尝试并且解决删除红圈中内容有解决方案的,麻烦再评论区给我留言,感谢。

删除其他记录之后,就可以去项目里面重新操作了。如果不删除本地文件,也会报一个错误,说是什么已存在什么的。

项目里的操作就是如下三条,

python manage.py migrate --fake
python manage.py makemigrations
python manage.py migrate

目前为止,应该这个问题会完美解决。

参考

你可能感兴趣的:(python,django,python,后端,drf)