django集成xadmin的方法

xadmin是django的一个第三方的管理后台实现,它的功能比自带的admin功能更加强大。 
xadmin项目在github上的地址为:https://github.com/sshwsfc/xadmin 
xadmin相关文档可以在这里查看:http://xadmin.readthedocs.io/en/docs-chinese/

文档上有些地方写的还是比较简要,按照上面的步骤做,有时候报错了可能还不知道什么原因。这里简要总结下自己集成xadmin的方法,我使用的是1.9版的django和2.7的python。

1 使用pip安装 
xadmin项目在github上的文档写的安装命令为:

pip install xadmin
  • 1

但是中文文档的网站上写的安装命令为:

pip install django-xadmin
  • 1

这两个命令并不是装的同一个包,应该是选择一个即可。使用pip install xadmin,安装的版本是xadmin-0.6.1;使用pip install django-xadmin安装的话,是django-xadmin-0.5.0。但不要两个都安装,可能会报错的。这里我使用的是pip install xadmin命令安装。

2 在项目中添加xadmin配置 
1)settings.py文件 
INSTALLED_APPS中添加xadmin的安装,文档网站上是这样写的:

INSTALLED_APPS = (
    ...
    'xadmin',
    'crispy_forms',
    'reversion',
    ...
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

直接参考这个配置添加上面三个应用的话,会报错找不到reversion模块。因为crispy_forms在安装xadmin的时候是一起被安装了,但是reversion需要额外安装一下

pip install django-reversion
  • 1

在添加应用后,需要重新makemigrations和migrate一下,以生成对应所需的数据库表。

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)),
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3)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 FelixProjects
import xadmin
# Register your models here.
#class FelixProjectsAdmin(admin.ModelAdmin):
class FelixProjectsAdmin(object):
    list_display = ('pj_name', 'pj_group', 'pj_category')

xadmin.site.register(FelixProjects, FelixProjectsAdmin)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在集成xadmin之后,admin模块其实就可以不要了,可以将原admin的代码删掉。

猜你喜欢

转载自blog.csdn.net/bysjlwdx/article/details/80853655