在django 1.8中添加datetime字段时,migrate显示验证错误

时间:2015-10-29 07:18:36

标签: python django-1.8

我在模型中有以下模型

class UserTripbook(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    country = models.CharField(max_length = 50)
    state = models.CharField(max_length = 50)
    social_status = models.CharField(max_length = 50)
    place_name = models.CharField(max_length = 150)
    tripped_with = models.CharField(max_length = 50)
    tripped_by = models.CharField(max_length = 50)
    image_url = models.ImageField(upload_to = upload_path, max_length = 300, blank = True, null = True)
    image = models.CharField(max_length = 200, blank = True, null = True)
    experience = models.CharField(max_length = 50)
    rating = models.CharField(max_length = 50)

它工作正常,我已经使用我的应用程序在数据库中创建了一些条目,但现在当我添加

created = models.DateTimeField(auto_now_add = True)

在我的模型中并运行makemigrations,它可以工作但是在我运行migrate命令之后,它会抛出验证异常: django.core.exceptions.ValidationError:[u"' NULL'值具有无效的日期格式。它必须是YYYY-MM-DD格式。"]

我已经尝试过django.utils.timezone.now和datetime.now作为默认但同样的错误。然后我想也许是因为我已经在我的数据库中有一些数据所以我手动删除了数据库中的所有行并运行了迁移和迁移命令,但仍然是同样的错误。 我认为它不是模型,但需要一些设置来解决这个问题,但不确定。 仅供参考,我添加了DATETIME_FORMAT ='%Y-%m-%d%H:%M:%S' 也在设置文件中。请指导我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您的日期字段具有空值,您可以通过执行以下操作来避免错误:

created = models.DateTimeField(auto_now_add = True, null=True)

这将允许datetimefield中的Null值。 您可以稍后手动覆盖空值。