gpt4 book ai didi

python - 我无法解决 Django models.DateField ValidationError

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:54 25 4
gpt4 key购买 nike

我遇到了 models.DateField() 的错误

首先,我这样做了。

模型.py

from datetime import date, datetime
from django.db import models

class User(models.Model):
uid = models.AutoField(primary_key=True)
birthdate = models.DateField()

然后,我得到了,

$ python manage.py makemigrations
You are trying to add a non-nullable field 'birthdate' to user_profile without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
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

所以,我做到了,

模型.py

from datetime import date, datetime
from django.db import models

class User(models.Model):
uid = models.AutoField(primary_key=True)
birthdate = models.DateField(default=date.today)

然后,

$ python manage.py migrate
django.core.exceptions.ValidationError: ["'' は無効な日付形式です。YYYY-MM-DD形式にしなければなりません。"]

错误的意思是,像“''对于日期的格式无效。你应该更改为 YYYY-MM-DD”。

我应该如何更改此代码?谢谢。

///附加///如果可以,我不想将日期插入生日字段。但似乎我不得不这样做。我可以让它空白吗?

birthdate = models.DateField(null=True, blank=False)

没用。

python 3.5.1 Django 1.9.1

最佳答案

听起来你的迁移文件搞砸了。当你进行迁移时,django 会创建一个迁移文件来记录你所做的事情。所以简而言之,您多次更改模型代码,但您从未更改过迁移文件,或者您正在创建重复的迁移文件。

下面应该是你想要的,

birthdate = models.DateField(null=True, blank=True)

但是正如您所注意到的,清理与此更改相关的所有迁移文件并创建一个新文件应该可以解决问题。

关于python - 我无法解决 Django models.DateField ValidationError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35226223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com