Python+django+xadmin学习与开发笔记【04】快速开发后台管理系统

【先试试django自带的admin】

创建superuser,但报错了。。发现user表里的gender长度设置小了(female是6个字符)于是update一下这个字段,参考https://blog.csdn.net/qingche456/article/details/58106629

登录成功!

admin.py中进行注册

from django.contrib import admin

# Register your models here.

from .models import UserProfile  # .表示当前目录


# 创建管理器
class UserProfileAdmin(admin.ModelAdmin):
    pass
# 把数据表和管理器联系起来 注册
admin.site.register(UserProfile, UserProfileAdmin)

【xadmin2+django2】

教程中的方案已经无法满足需求 需要下载适配django2的xadmin版本(xadmin作者简直良心呐!!)

https://github.com/sshwsfc/xadmin/tree/django2

把xadmin文件夹复制过来

加到INSTALLED_APPS

这里改一下

刚才这些注释掉

Run!!成功!!

咦?这可咋整!migrate一下就ok了!

【自定义显示内容】

在models中重载str方法!注意 不是unicode方法了


    # 重载unicode方法 指定前端表格内显示啥
    def __str__(self):
        return '{0}({1})'.format(self.code, self.email)

 

【自定义显示的字段】

 adminx.py中加入list_display

class EmailVerifyRecordAdmin(object):
    list_display = ['code', 'email', 'send_type', 'send_time']

xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)

效果: 

【添加搜索功能】

同上位置添加

    search_fields = ['code', 'email', 'send_type']

效果:

【添加过滤器】

list_filter = ['code', 'email', 'send_type', 'send_time']

【如果有外键,比如章节的外键是课程,那么过滤器中应该写名外键的哪个字段】

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

【xadmin默认显示诸如“修改XXX Object(12)”】

这是因为类没有定义__str__方法

    def __str__(self):
        return self.name

----------------------------------------------------------------我是分割线---------------------------------------------------------------------------

接下来是一些xadmin的全局配置,我们选择在users的app里进行全局配置:adminx.py

【修改网站logo,修改版权信息,设置左边舒展收缩】

# 修改GlobalSetting
class GlobalSetting(object):
    # 左上角的Logo
    site_title = "木尧学堂(管理端)"
    # 底部的版权信息
    site_footer = "2016-2019 木尧工作室"
    # 左边是否收缩
    menu_style = "accordion"
xadmin.site.register(views.CommAdminView, GlobalSetting)

【修改主题是否可选】

from xadmin import views


# 是否使用主题选择功能
class BaseSetting(object):
    enable_themes = True  
    use_bootswatch = True
xadmin.site.register(views.BaseAdminView, BaseSetting)

【把左边红框里改成中文】

每个app文件夹下有个apps,py 用来配置app的显示名称,添加verbose_name,并在init中加上引用

猜你喜欢

转载自blog.csdn.net/muyao987/article/details/86577740