您的位置:首页 > 编程语言 > Go语言

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

2017-08-02 21:51 417 查看
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 = True

USE_L10N = True

USE_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 admin

from .models import UserProfile

class UserProfileAdmin(admin.ModelAdmin):
pass

admin.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 url
from django.contrib import admin
import 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/



登录之后的页面:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐