【问题标题】:TypeError: Required argument 'year' (pos 1) not found in djangoTypeError:在 django 中找不到必需的参数“年份”(位置 1)
【发布时间】:2018-12-11 08:45:38
【问题描述】:

我在现有模型中添加了一个新字段,当我运行 python manage.py makemigrations 时,我得到了以下信息

1) Provide a one-off default now (will be set on all existing rows)
 2) Quit, and let me add a default in models.py
 Select an option: 1
 Please enter the default value now, as valid Python
 The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now()

我不小心跑了>>timezone.date()

然后当我运行python manage.py migrate 时出现以下错误

TypeError: Required argument 'year' (pos 1) not found

我的关注是我的表演迁移

 [X] 0001_initial
 [X] 0002_auto_20180307_1222
 [X] 0003_auto_20180308_1608
 [X] 0004_auto_20180421_0937
 [ ] 0005_auto_20180702_1917
 [ ] 0006_auto_20180702_1949
 [ ] 0007_auto_20180702_2000

我该如何解决这个问题。

【问题讨论】:

  • 只需删除您正在撤消的迁移 (0005~0007) 并再次进行迁移
  • 能否请您发布您的模型代码的相关部分,相关的迁移文件?
  • 您的模型可能需要日期时间的年份部分。 timezone.now() 发回一个 datetime 对象。对于平滑的模型迁移,从迁移文件夹中删除迁移 5、6、7,在模型上添加带有值的默认参数...(使用随机的 randint() 函数,)然后使用 makemigrations,迁移。
  • 您似乎向名为 year 的模型添加了一个整数字段。但是在 makemigration 中,您将此方法的默认值设置为 datetimeobject 并在运行迁移时引发异常
  • 谢谢大家,我通过删除文件 5,6,7 解决了这个问题,并进行了迁移,它成功了

标签: python django django-migrations


【解决方案1】:

谢谢大家,我通过删除文件 5,6,7 解决了这个问题,并进行了迁移,它成功了

【讨论】:

    猜你喜欢
    • 2015-09-29
    • 2019-05-27
    • 2020-12-24
    • 2019-02-07
    • 1970-01-01
    • 2019-09-03
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多