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']
直接使用外键名加__(双下划线)外键字段名

浙公网安备 33010602011771号