Django,视图中创建新模型实例时引发ValidationError
我有一个这样的模型:
class Machine(models.Model):
name = models.CharField(max_length=255, primary_key=True)
user = models.CharField(max_length=255)
mail = models.CharField(max_length=255)
datetime = models.DateTimeField(blank=True, null=True, default="")
licenses = models.CharField(max_length=10000, blank=True, null=True, default="")
正如你看到的,我想让datetime
和licenses
可以为空。
我想在我的视图中用以下代码创建这个模型的新实例:
Machine.objects.create(name=machine_name, user=user_name, mail=user_mail)
但是我遇到了这个问题:
ValidationError at /update
[u"'' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
同时,如果直接在数据库中运行以下代码,它是可以正常工作的:
INSERT INTO `xxx`.`xxx` (`name`, `user`, `mail`) VALUES ('a', 'b', 'c');
我不明白为什么Django还要求我输入datetime元素,即使我已经说明可以为空。
2 个回答
1
2
去掉 default=""
这个设置,适用于日期时间字段。
datetime = models.DateTimeField(blank=True, null=True,)
即使你已经设置了 blank=True
和 null=True
,Django 还是会尝试在没有指定值的情况下给这个字段设置一个默认值。但是因为这个默认值的格式不对,所以就会出现问题。