后台管理系统
特点:
权限管理
少前端样式
快速开发
项目创建好之后,django自动给创建一个admin管理系统。
运行项目,浏览器访问:
django默认是没有提供用户及密码信息的。django提供一个命令:createsuperuser 自动创建超级用户
此时超级用户就建好了,用刚创建的账户登录
django自动为我们注册了一个组。
把语言改成中文:
修改为:
刷新一下:
这里的组,对应数据表group
=======================================
把user注册进来
刷新页面:
用户信息就注册进来了
添加用户:
输入信息之后,点击保存:报错
主要是这个:
把max_length=5,改成6
还要执行 migrate
如图:
再次添加
然后,点击保存
报错
IntegrityError at /admin/users/userprofile/add/
(1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`))')
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/users/userprofile/add/
Django Version: 1.9
Exception Type: IntegrityError
Exception Value:
(1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`))')
Exception Location: C:\Users\hlg\Envs\mxonline\lib\site-packages\MySQLdb\connections.py in defaulterrorhandler, line 36
Python Executable: C:\Users\hlg\Envs\mxonline\Scripts\python.exe
Python Version: 2.7.12
Python Path:
['C:\\Users\\hlg\\PycharmProjects\\MxOnline\\apps',
'C:/Users/hlg/PycharmProjects/MxOnline',
'C:\\Program Files\\JetBrains\\PyCharm 2017.1.3\\helpers\\pydev',
'C:\\Users\\hlg\\PycharmProjects\\MxOnline',
'C:\\Users\\hlg\\PycharmProjects\\MxOnline\\apps',
'C:\\Program Files\\JetBrains\\PyCharm 2017.1.3\\helpers\\pydev',
'C:\\Windows\\system32\\python27.zip',
'C:\\Users\\hlg\\Envs\\mxonline\\DLLs',
'C:\\Users\\hlg\\Envs\\mxonline\\lib',
'C:\\Users\\hlg\\Envs\\mxonline\\lib\\plat-win',
'C:\\Users\\hlg\\Envs\\mxonline\\lib\\lib-tk',
'C:\\Users\\hlg\\Envs\\mxonline\\Scripts',
'c:\\python27\\Lib',
'c:\\python27\\DLLs',
'c:\\python27\\Lib\\lib-tk',
'C:\\Users\\hlg\\Envs\\mxonline',
'C:\\Users\\hlg\\Envs\\mxonline\\lib\\site-packages']
Server time: 星期二, 5 六月 2018 17:48:12 +0800
解决办法:
如果在使用Django Admin后台添加用户时出现报错:
(1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxproject`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`))')
这时候需要在setting文件的databases中添加以下代码取消外键检查
'OPTIONS':{"init_command":"SET foreign_key_checks = 0;"}
完整的就是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': "mxonline",
'USER':"root",
'PASSWORD':"*",
'HOST':'*',
'OPTIONS':{"init_command":"SET foreign_key_checks = 0;"}
}
}