【问题标题】:Django migrate error: formisoformat argument must be stringDjango 迁移错误:formisoformat 参数必须是字符串
【发布时间】:2022-01-11 21:17:38
【问题描述】:

我真的需要帮助来理解我在 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”是类的唯一对象。

这个错误是一堆Tracebacks,最后它告诉这一行有一个“TypeError:fromisoformat:argument must be str”:return datetime.date.fromisoformat(value) 在 dateparse.py 文件中。

我几天来一直在寻找解决方案,但似乎找不到任何解决方案,我还不完全了解 django 的功能,所以如果有人能告诉我如何获得,那就太好了通过这个。

感谢您的宝贵时间。

【问题讨论】:

  • 请发布模型
  • 当您尝试迁移 listings.0002 时,publication_date 是否已存在于您的数据库中?
  • 我不知道,但这不是我尝试进行的第一次迁移,但由于我添加了更多对象,它失败了。它要求我输入某些字段,我输入了它们,但是 pythin manage.py migrate 会给我这些错误

标签: python django string typeerror migrate


【解决方案1】:

我遇到了类似的问题,为了更正它,我重置了迁移。

  1. 您必须删除项目中的所有迁移文件

浏览您的每个项目应用程序迁移文件夹并删除其中的所有内容,init.py 文件除外。

或者,如果您使用的是类似 unix 的操作系统,您可以运行以下脚本(在您的项目目录中):

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete
  1. 创建初始迁移并生成数据库架构:
python manage.py makemigrations
python manage.py migrate

【讨论】:

    猜你喜欢
    • 2020-03-06
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多