xadmin 的安装使用和简单配置

目前看来,django后台管理还是选取 django-xadmin 比较合适。功能丰富、扩展性也不错。

环境

  • python2.7(重要)
  • django==1.9.8
  • django-xadmin

安装方式

虽然 django-xadmin 可以使用 pip install xadmin 来安装,但是还是推荐使用 github 上的源码,功能丰富。git clone 下来的目录中,将目录下的 xadmin 复制进入 django 项目中,(比如项目下的 extra_apps 这种目录)。

在项目的 settings.py 中加入

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xadmin',
    'crispy_forms',
]

注意:如果使用时候报错,提示缺少module,按照提示使用 pip 命令安装即可。

使用

首先在全局的 urls.y 文件中,加入如下:

from django.conf.urls import include
import xadmin

urlpatterns = [
    # url(r'^admin/', admin.site.urls),
    url(r'^xadmin/', xadmin.site.urls),
]

注册 Model

假设在 django 项目中建立了一个名为 example 的App,那么需要在 example 目录下建立一个 adminx.py 文件, 内容如下:


import xadmin
from .models import Example

class ExampleAdmin(object):

    # 在后台中显示的字段
    list_display = ('field1', 'field2', ......)

    # 给字段加上搜索功能
    search_fields = ('field1', 'field2', ......)

    # 给字段加上过滤显示
    list_filter = ('field1', 'field2', ......)


xadmin.site.register(Example, ExampleAdmin)

xadmin 全局配置

django app下的adminx.py中加入以下内容:

import xadmin
from xadmin.views import BaseAdminView, CommAdminView


class GlobalSetting(object):
    # 给xadmin后台加上一个站名
    site_title = ''
    # 给xadmin后台footer部分加一个名称
    site_footer = ''
    # 让xadmin后台的各种菜单可折叠
    menu_style = 'accordion'


class BaseSetting(object):
    # 打开主题
    enable_themes = True
    # 启用更多主题选项
    use_bootswatch = True


xadmin.site.register(CommAdminView, GlobalSetting)
xadmin.site.register(BaseAdminView, BaseSetting)

xadmin 其他设置

在 xadmin 后台管理中,YourApp 名称都是英文的,如果需要显示中文名称,需要在 yourapp/apps.py 中加入如下:


# coding: utf-8
from __future__ import unicode_literals

from django.apps import AppConfig


class YourAppConfig(AppConfig):
    name = 'yourapps'
    verbose_name = u'你的应用名'

然后在 app/__init__.py 中加入如下内容:


default_app_config = "yourapps.apps.YourAppConfig"

然后重启django

你可能感兴趣的:(xadmin 的安装使用和简单配置)