今天突然忘记了管理员的密码 一下子等不进去了。所以就通过之前写好的修改密码的页面进行修改。但是代码执行到save()的时候 竟然报 is_superuser cannot be null 的错 可是 这不是默认0么?
检查数据库确实数据是0 百思不得其解。
回想起来我家里写的项目也是碰到这个问题。想来想去 问题应该是出在这货身上:
mysql.connector.django
目前不知道是这货BUG还是咋样的 它会将数据库表中的0当做null来处理 我也是醉了
https://dev.mysql.com/doc/connector-python/en/connector-python-django-backend.html
我更换为Pymysql
安装: pip3 install pymysql
在项目下的__init__.py中导入pymysql
import pymysql
pymysql.install_as_MySQLdb()
在setting.py中添加
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'contract_manage',
'USER': 'root',
'PASSWORD': 'XXX',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
然后就一切顺利了 干!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
对了 这里顺便说下 Xadmin添加用户时或更改用户密码时不加密的问题。只需要在 user的Model下 自定义一个save()即可:
def save(self, *args, **kwargs):
self.password = make_password(self.password)
return super(UserProfile, self).save(*args, **kwargs)