Django创建admin用户时出错django.core.exceptions.ValidationError?

Django创建admin用户时出错django.core.exceptions.ValidationError?

在执行python manage.py createsuperuser并输入相应用户名和密码等以后出现以下错误
django.core.exceptions.ValidationError: ['’‘ 必须为合法的日期时间格式,请使用 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。']

在执行创建超级用户前,有编写models模块,且涉及许多与时间相关的字段,不知道会不会有联系
请各位指教

models.py
from datetime import datetime

from django.db import models
from django.contrib.auth.models import AbstractUser

Create your models here.
class UserProfile(AbstractUser):#扩展用户信息数据库

nick_name = models.CharField(max_length=30, verbose_name=u"昵称", default=u"")
birthday = models.DateTimeField(verbose_name=u"生日",null=True,blank=True,default=u"")
gender = models.CharField(choices=(("male",u"男"),("femal",u"女")),default=u"",max_length=5)
address = models.CharField(max_length=100,default=u"")
mobile = models.CharField(max_length=11,blank=True,null=True)
image = models.ImageField(upload_to="image/%Y/%m",default=u"image/default.img",max_length=100)#用户头像和默认头像

class Meta:
    verbose_name = u"用户信息"
    verbose_name_plural = verbose_name

def __str__(self):#admin 管理时返回的题目标题
    return self.username
阅读 5.2k
2 个回答

扩展 User 时,字段 birthday 默认值错误,应该将空串改成 None,如下

class UserProfile(AbstractUser):
    ...
    # birthday = models.DateTimeField(verbose_name=u"生日",null=True,blank=True,default=u"")
    birthday = models.DateTimeField(verbose_name=u"生日",null=True,blank=True,default=None)

扩展步骤请参考 《django 2.0 扩展用户字段 示例》, https://segmentfault.com/a/11...

错误原因应该是:
DateTimeField对应的格式是datetime(),你写成time的格式了。

解决方案:

  1. 要么使用datetime() 方法
  2. 使用time.strftime("%b %d %Y %H:%M:%S(类似格式)",datetime.now)

查了下文档,如果要时时更新时间的话,好像可以尝试:DateTimeField.auto_now

宣传栏