Django之xadmin

一. 准备

环境:

  python3.6 + django2.0

xadmin: 

  直接使用pip安装: pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2

二. 注册: settings.py

INSTALLED_APPS = [
    # ...
    # xadmin主题模块
    'xadmin',
    # 渲染表格模块
    'crispy_forms',
    # 为模型通过版本控制, 可以回滚数据
    'reversion',

三. 数据迁移

xadmin有自己的数据库模型类, 完成数据库迁移

python manage.py makemigrations
python manage.py migrate

四. 设置主路由替换掉admin: 主urls.py

# xadmin的依赖
import xadmin
xadmin.autodiscover()
# xversion模块自动注册需要的版本控制的model
from xadmin.plugins import xversion
xversion.register_models()

urlpatterns = [
    # ...
    path('xadmin/', xadamin.site.urls),
]

五. 创建超级用户

python manage.py createsuperuser

六. 完成xadmin全局配置: 新建home/adminx.py

# home/admin.py
# xadmin全局配置
import xadmin
from xadmin import views

class GlobalSettings(object):
    '''xamin的全局配置'''
    enable_themes = True  # 使用主题功能
use_bootswatch = True
site_title
= 'xxx' # 设置站点标题 site_footer = 'xxx' # 设置站点的页脚 menu_style = 'accordion' # 设置菜单折叠 xadmin.site.register(views.CommAdminView, GlobalSettiongs)

七. 在admin.py中注册model: home/adminx.px

from . import models
# 注册
xadmin.site.register(models.Banner)

八. 修改app:home的名字: xadmin页面上显示的效果

# home/ __init__.py
default_app_config = 'home.apps.HomeConfig'

# home/apps.py
from django.apps import AppConfig
class HomeConfig(AppConfig):
    name = 'home'
    verbose_name = '我的首页'

九. 字段名与表名显示效果: home/models.py

class Banner(BaseModel):
# verbose_name 设置字段显示效果 image
= models.ImageField(upload_to='banner', verbose_name='轮播图', null=True, blank=True) name = models.CharField(max_length=150, verbose_name='图片名称') note = models.CharField(max_length=150, verbose_name='备注信息') link = models.CharField(max_length=150, verbose_name='轮播图链接地址') class Meta: db_table = 'luffy_banner' # 在Meta中verbose_name 设置表名显示效果
verbose_name
= '轮播图' # verbose_name_plural 设置时会在显示效果后加一个s
verbose_name_plural
= verbose_name def __str__(self): return self.name

 

 

十. 显示, 搜索, 过滤

class EmailVerifyRecordAdmin(object):
    list_display = ['code', 'email', 'send_type', 'send_time']  # 显示字段设置
    search_fields = ['code', 'email', 'send_type']  # 搜索字段设置
    list_filter = ['code', 'email', 'send_type', 'send_time']  # 过滤字段设置

 十一. 外键字段使用

list_filter = ['course__name', 'name', 'add_time']

直接使用外键名加__(双下划线)外键字段名

 

posted @ 2019-07-18 21:10  yyfgrd  阅读(447)  评论(0)    收藏  举报