Django xadmin的使用
xadmin是django的一個第三方的管理后台實現,它的功能比自帶的admin功能更加強大。
xadmin項目在github上的地址為:https://github.com/sshwsfc/xadmin
xadmin相關文檔可以在這里查看:https://xadmin.readthedocs.io/en/latest/index.html
這里簡要總結下自己集成xadmin的方法,我使用的是django1.10和python3.52,xadmin是0.60。
1. 從上面github地址下載 xadmin(網上有說直接pip安裝的,但我這里安裝失敗,可能是python3的緣故吧)。
並根據requirements.txt 安裝所需要的模塊。
2.創建一個新的project,並將上面目錄中的xadmin目錄拷貝到新的project下。
3.在項目中添加xadmin配置
1)settings.py文件
INSTALLED_APPS中添加xadmin的安裝,文檔網站上是這樣寫的:
INSTALLED_APPS = (
... 'xadmin', 'crispy_forms', 'reversion', ... )

2)urls.py文件
urls里面要添加xadmin的匹配,示例如下:
from django.conf.urls import patterns, include, url from xadmin.plugins import xversion import xadmin #version模塊自動注冊需要版本控制的 Model xversion.register_models() xadmin.autodiscover() urlpatterns = [ ... url(r'xadmin/', include(xadmin.site.urls)), ]

4.創建一個app,寫models,將app注冊。
python manage.py startapp hys_datamanagement
models:
from django.db import models class UserInfo(models.Model): """用戶表""" user_name = models.CharField(max_length=20, unique=True, verbose_name=u"負責人") # 負責人 user_email = models.EmailField(null=True, blank=True, verbose_name=u"郵箱") # 郵箱 user_mobile = models.BigIntegerField(verbose_name=u"電話") # 電話 class Meta: db_table = 'user_info' verbose_name = '用戶表' verbose_name_plural = "用戶表" def __str__(self): return self.user_name
然后再注冊app:
5.修改數據庫連接信息,配置 Django 以便與 Oracle 數據庫交互。
由於本次示例使用oracle數據庫現有數據,所以配置連接oracle
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.oracle', 'NAME': 'orcl', 'USER': 'hys_datamanagement', 'PASSWORD': 'hys_datamanagement', 'HOST': '192.168.168.224', 'PORT': '1521', } }
注:創建數據庫用戶的語句:
create user hys_datamanagement identified by hys_datamanagement;
grant connect,resource to hys_datamanagement;
然后創建數據庫表:
python manage.py makemigrations
python manage.py migrate
效果:
6.配置adminx.py文件
django自帶的admin模塊使用的是admin.py文件,xadmin模塊的文件名則叫adminx.py。
admin模塊在配置時使用的參數是admin.ModelAdmin,xadmin則使用object即可。然后替換admin.site.register為xadmin.site.register。如下:
# from django.contrib import admin from .models import UserInfo import xadmin class UserInfoAdmin(object): list_display = ('user_name', 'user_email', 'user_mobile') xadmin.site.register(UserInfo, UserInfoAdmin)
然后就可以啟動服務,看看效果了:
訪問 http://127.0.0.1:8000/xadmin/
通過命令 python manage.py createsuperuser 創建超級用戶。
登錄后:
至此,基本配置就完成了。