我真的需要帮助来理解我在 Django 中遇到的这个错误,这个错误是在我将一堆对象添加到 models.Model 类后突然出现的。即使我注释掉可能引发错误的所有新对象,此错误仍然存在。
我修改的代码是:
from django.db import models
# Create your models here.
class Band(models.Model):
class Genre(models.TextChoices):
Anime_music_vid= "AMV"
Game_music_vid="GMV"
Anime_sound_music_video="ASMV"
name = models.fields.CharField(max_length=100)
genre=models.fields.CharField(choices=Genre.choices,max_length=5)
channel = models.fields.URLField(null=True,blank=True)
publication_date = models.fields.DateField(null=True,blank=True)
creator= models.fields.CharField(max_length=100)
link=models.fields.URLField(null=True,blank=True)
修改前“name”是类的唯一对象。
这个错误是一堆回溯,最后它告诉我们在这一行中有一个“TypeError: fromisoformat: argument must be str”:return datetime.date.fromisoformat(value) 在 dateparse.py 文件中。
几天来我一直在寻找解决方案,但似乎找不到任何解决方案,我还没有完全理解 django 的功能,所以如果有人能告诉我如何解决这个问题,那就太好了.
谢谢你的时间。
我有一个类似的问题,为了纠正它,我重置了迁移。
浏览每个项目的应用程序迁移文件夹并删除里面的所有内容,除了 init.py 文件。
或者如果您使用的是类 unix 操作系统,您可以运行以下脚本(在您的项目目录中):
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
python manage.py makemigrations
python manage.py migrate
可能没有回答 OP 的问题,但对我来说我有一个错字:
null=True,
default=True,
应该是什么时候
null=True,
default=None,
我想这对你有帮助。因为我遇到了同样的问题,但这对我有帮助。
#models.py
import datetime
ISO_date = "2021-12-18"
default_date= datetime.date.fromisoformat(ISO_date)
class Mymodel(model.Model):
Publication = model.DateField(default=default_date)
保存模型并打开迁移文件夹并删除除init.py
之外的所有文件、文件夹不要触摸 db 文件。并进行迁移。
删除后;
import datetime
ISO_date = "2021-12-18"
default_date= datetime.date.fromisoformat(ISO_date)
和
default=default_date
,
再次保存并进行迁移。