Django建教育平台(四)--Django Admin与Xadmin

来源:互联网 发布:易语言表白源码999 编辑:程序博客网 时间:2024/04/29 10:13

Django自带后台管理程序--Admin, Admin也是一个app, 在project创建时就自动创建了.

1. 浏览器尝试登陆admin页面

a. 点击pycharm Run菜单--Debug--elearn_py3
b. 在浏览器输入http://127.0.0.1:8000/admin/, 弹出以下界面:


问题是现在我们没有创建任何user, 没法登陆.

c. 创建User

点击pycharm tools菜单--Run manage.py task

manage命令行中输入createsuperuser, 依提示输入用户名, 邮箱, 2次密码.


d. 重新登陆admin

登陆页面输入用户名和密码, 进入以下页面


e. 将页面文字改为中文

在settings中修改以下三行代码, 修改文字, 还修改时区为中国时区.

LANGUAGE_CODE = 'zh-hans'  # 英文改为中文TIME_ZONE = 'Asia/Shanghai'  # UTC时区改为上海时区USE_I18N = TrueUSE_L10N = TrueUSE_TZ = False  # True改为False, 否则Django存储数据库内容时, 会使用UTC时间.



f. Admin对应的数据表

admin页面的Groups, 是对应auth_groups这张表.




2. Admin中注册UserProfile

其实Django本身是有User的, 只是之前我们创建UserProfile时把它删除了, 现在把UserProfile注册到Admin页面中

a. 修改User app目录下admin文件



from django.contrib import adminfrom .models import UserProfileclass UserProfileAdmin(admin.ModelAdmin):    passadmin.site.register(UserProfile, UserProfileAdmin)


b. 刷新浏览器Admin页面

发现增加了USERS, 用户信息



c. 尝试增加用户

点击用户信息右边的+Add按钮



在弹出页面中输入该user的各种信息




3. Xadmin的安装

Xadmin比Django自带的admin更加智能, 后面使用Xadmin.

a. 在elearn_py3虚拟环境下, 命令行输入pip install xadmin


但却报错了, 网上搜索得知从pip 安装xadmin, 目前还不支持Python3.x, Python2.x不存在这个问题.

Python3.x需要安装xadmin的话, 需要直接从git安装.解决方案参考呆萌的代Ma的博客.

在命令行输入pip install git+git://github.com/sshwsfc/xadmin.git,  安装成功.

在安装xadmin的同时还安装了django-crispy-forms, httplib2等依赖包.

b. 下载xadmin源代码

浏览器打开https://github.com/sshwsfc/xadmin

点击绿色按钮"Clone and download",  弹出菜单中点击"Download ZIP".


c. 将xadmin源码copy至项目下

xadmin下载后解压, 将其中的xadmin文件夹copy到elearn_py3项目下



d. 在elearn_py项目下新建一个python package, 命名为extra_apps, 用来放置第三方源码包.


将xadmin文件夹拖入extra_apps文件夹中, 在弹出菜单中把两个选项勾选取消掉.


右击extra_apps文件夹, 将其mark成Sources Root, 这样import xadmin的时候不需要写extral_apps的文件夹名.


e. pip uninstall xadmin

因为我们后续要使用xadmin修改后的源码, 使用时从extra_apps中import xadmin就可以了, 不需要pip安装的xadmin, 故将其删除.

卸载后用pip list查看安装包, xadmin的依赖包仍然在, 这是我们想保留的.


4. Xadmin的配置

a. settings中修改app列表

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'users',    'courses',    'organization',    'operation',    'xadmin',  # 新增app    'crispy_forms',  # 新增app]

增加xadmin路径

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.insert(0, os.path.join(BASE_DIR, "apps"))sys.path.insert(0, os.path.join(BASE_DIR, "extra_apps"))  # 新增代码

b. 修改urls

from django.conf.urls import urlfrom django.contrib import adminimport xadmin  # 新增代码urlpatterns = [    url(r'^xadmin/', xadmin.site.urls),  # 在原来2个admin前加x, 变成xadmin]

c. 把User/admin中的代码删除或注释掉


d. 浏览器打开xadmin页面

Run菜单中点Run, 然后在浏览器中输入http://127.0.0.1:8000/xadmin/

出现报错: 1146, "Table 'elearn_py3.xadmin_usersettings' doesn't exist", 原因是xadmin的默认表没有同步.



e. 同步xadmin表

manage命令行中输入makemigrations, 然后输入migrate


f. 浏览器重新加载http://127.0.0.1:8000/xadmin/


登录之后的页面:




原创粉丝点击