前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Django的xadmin项目应用

基于Django的xadmin项目应用

作者头像
星哥玩云
发布2022-06-29 21:32:24
1940
发布2022-06-29 21:32:24
举报
文章被收录于专栏:开源部署

最近一个项目用到django的xadmin改造来做,这方面资料偏少,现在吧目前自己学到的东西分享一下,一遍大家用到时候查阅。

1, classComm(Settings): 中可以实现

菜单中添加模块和二级菜单 def get_nav_menu(self):       menus = super(Comm, self).get_nav_menu()       menus.append({           'menus': [{                 'url': '/admin/report',                 'icon': 'search',                 'perm': 'main.view_record',                 'title': '查看班报'           }],           'first_icon': 'calendar',           'title': u'班报查询'       })       return menus   菜单中插入二级菜单   defget_nav_menu(self):       model_dict1 = {                 'url': '/cluster/index',                 'icon': 'search',                 'perm': 'main.view_record',                 'title': '概况',       }       menus = super(Comm, self).get_nav_menu()       menus[2]['menus'].insert(0, model_dict1)       return menus         设置主题可选择         enable_themes= True         use_bootswatch = True       设置系统标题         site_title='**管系统'       设置菜单风格         menu_style = 'accordion' 设置各模块的菜单标题,ps:这个也可以到个模块下面的__init__.py中添加app_title= _('用户管理')  apps_label_title = {           'auth':u'权限管理',           ‘user’:u’用户管理’     }

2,admin查询实现

class  PCAdmin(object):     def open_detail(self,instance):         return  "<a href='http://***/%s' target='_blank'>详情</a>" % instance.Host     #查询过滤 def get_list_queryset(self):         return super(PCAdmin, self).get_list_queryset().filter(HomeId__in=[1,2])     open_detail.short_description = u'PC详情'     open_detail.allow_tags = True     open_detail.is_column = True #列表显示字段,     list_display = ('Host','Type','Model', 'Cpu', 'Mem', 'Manager','open_detail') #open_detail添加的自定义冗余列,用于调用上面函数。     show_detail_fields = ('Host')#在此字段处预览     list_filter = ('ClusterId','Manager', 'Host')#filter过滤器过滤字段     model_icon = 'laptop' #菜单处显示的icon     hidden_menu=True#设置不显示此模块菜单

3,model注册

TYPE = (     (1, 'PC '),   (2, '服务器') ) class  PCStatus(models.Model): Host =models.GenericIPAddressField('ip',max_length=20) #字典类型 Type =models.IntegerField('类型',choices=TYPE,blank=True,null=True) #外键关联 HomeId=models.ForeignKey(HomeDict,verbose_name=’ 所属机房 ',db_column='HomeId',blank=True,null=True)   Load = models.IntegerField('机器负载',blank=True,null=True)   CheckTime = models.DateTimeField('监测时间',blank=True,null=True)   class Meta:       verbose_name = u"机器分析"       verbose_name_plural = verbose_name   def __unicode__(self):       return "%s 机器" % self.Host

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档