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 創建超級用戶。

登錄后:

至此,基本配置就完成了。
