1.xadmin配置 setting.py
1 2 3 4 5 6 7 8 9 | INSTALLED_APPS = ( ... 'xadmin' , 'crispy_forms' , 'reversion' , ... ) |
2.注册类 adminx.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | import xadmin from .models import Goods, GoodsImage class GoodsAdmin( object ): # 显示的字段 list_display = [ "name" , "click_num" , "sold_num" , "fav_num" , "goods_num" , "market_price" , "shop_price" , "goods_brief" , "goods_desc" , "is_new" , "is_hot" , "add_time" ] # 提供筛选字段 (字段不能包含外键) search_fields = [ 'name' , ] # 可以直接编辑的字段 list_editable = [ "is_hot" , ] # 过滤 list_filter = [ "name" , "click_num" , "sold_num" , "fav_num" , "goods_num" , "market_price" , "shop_price" , "is_new" , "is_hot" , "add_time" , "category__name" ] style_fields = { "goods_desc" : "ueditor" } # 图标 model_icon = 'fa fa-book' # 倒序 ordering = [ '-click_nums' ] # 只读字段,不能编辑 readonly_fields = [ 'click_nums' ] # 不显示的字段 exclude = [ 'fav_nums' ] # 导出文件格式 list_export = ( 'xls' , 'xml' , 'json' ) # 默认刷新时间 refresh_times = ( 3 , 5 ) # 可以通过url查找 free_query_filter = True # 表 data_charts = { "user_count" : { 'title(标题)' : u "User Report" , "x-field(x轴数据)" : "date" , "y-field(y轴数据)" : ( "user_count" , "view_count" ), "order" : ( 'date' ,)}, "avg_count" : { 'title(标题)' : u "Avg Report" , "x-field(x轴数据)" : "date" , "y-field(y轴数据)" : ( 'avg_count' ,), "order(排序)" : ( 'date' ,)} } class GoodsImagesInline( object ): model = GoodsImage exclude = [ "add_time" ] extra = 1 style = 'tab' class odsImagesInline( object ): model = sImages extra = 0 # 连接 关联时间的多张表 inlines = [GoodsImagesInline] # 当外键指向时候ajax加载数据 ralfield_style = 'fk_ajax # 外键显示字段 def __str__( self ): return self .character # 注册商品类 xadmin.site.register(Goods, GoodsAdmin) |
3.配置后台主题 adminx.py
1 2 3 4 5 6 7 8 9 10 11 12 | import xadmin from xadmin import views from .models import Law # 配置后台主题 class BaseSetting( object ): enable_themes = True use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting) |
4.配置后台系统名称和页脚版权、菜单样式 adminx.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import xadmin from xadmin import views from .models import Law # 后台系统名称页脚设置、设置后台菜单为收缩样式 class GlobalSetting( object ): # 头部名称 site_title = 'KCBT' site_footer = 'KCBT' # 设置收缩 menu_style = 'accordion' xadmin.site.register(views.CommAdminView, GlobalSetting) |
5.设置app的中文名称 apps.py
1 2 3 4 5 6 | from django.apps import AppConfig class ZcfgConfig(AppConfig): name = 'zcfg' verbose_name = '政策法规' |
更改 init .py文件
1 | default_app_config = 'zcfg.apps.ZcfgConfig' |
6.设置url
1 2 3 4 5 | import xadmin urlpatterns = [ path( 'xadmin/' , xadmin.site.urls), ] |
7.设置图标
替换
代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?