在django中,当用户新建项目的时候,系统会自动生成admin后台管理系统。在settings.py文件中,有这么一条:
INSTALLED_APPS = [
'django.contrib.admin',
...
]
django 的admin和自己创建的app一样,都配置有url:
url(r'^admin/', admin.site.urls),
可以通过在浏览器中输入下面的url来访问admin管理系统:
http://127.0.0.1:8000/admin/
此时并不能进行登录操作,因为django并没有为用户新建身份信息,而我们自己也没有创建用户。
进入Run manage.py Task界面,然后输入下面的指令用于创建管理员:
createsuperuser
根据提示输入用户名、密码、邮箱等信息。注意这里系统对密码强度有要求。
这里暂时只能使用用户名进行登录。
默认下admin为英文界面看着很不爽,所以可以配置为中文界面。在settings.py文件的最后有这么几行:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_TZ = True
将这几项改为:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
USE_TZ = True会让django在数据库中使用国际时间,从而导致一些时间的问题。使用False来指定使用本地时间。
因为我们重写了diango的user表,所以需要重新注册。
在 user app下有一个admin.py的文件,这个就是用来注册的,打开文件加入以下代码:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib import admin
from models import UserProfile
class UserProfileAdmin(admin.ModelAdmin):
pass
admin.site.register(UserProfile, UserProfileAdmin)
UserProfileAdmin 是UserProfile的管理器,命名规则是在其本名后面加上Admin,然后使用admin.site.register的方法来注册。
USERS为app的名称
这里的字段就是USERS中models.py中定义的字段,不同的字段类型系统会自动生成不同的控件,如时间、上传文件的控件等。
注意,这里的密码虽然是明文填写,但是在后台保存的是密文,且不能反解。
但是这个admin界面还是不够强大,还有一个xadmin更强大,推荐使用。
xadmin是基于django admin的一套后台管理系统,它比admin更强大。
两种方式:
1、pip安装:
pip install xadmin
这里安装可能出现编码报错,可以参照这篇文章:解决pip安装时的编码错误
注意,链接文章中的README文件必须为utf8编码的。
2、源码安装(我选择的方式):
在https://github.com/sshwsfc/xadmin
中下载源码文件。解压后将目录xadmin复制到项目的根目录下。
然后根目录下新建一个目录extra_apps用于存放第三方源码包,并把xadmin拖入其中,同时标记extra_apps为source root。
然后在settings.py中添加下面的一行:
在settings.py中注册xadmin:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users',
'courses',
'operation',
'organization',
'xadmin',
'crispy_forms',
]
然后在urls.py中配置url指向xadmin:
import xadmin
urlpatterns = [
url(r'^xadmin/', xadmin.site.urls),
]
然后将user app中的admin.py文件中注册的内容注释掉,因为会出现错误。
完成后重启系统,