阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

基于Django的xadmin项目应用

158次阅读
没有评论

共计 2270 个字符,预计需要花费 6 分钟才能阅读完成。

最近一个项目用到 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

Django 的详细介绍:请点这里
Django 的下载地址:请点这里

推荐阅读:

Ubuntu Server 12.04 安装 Nginx+uWSGI+Django 环境 http://www.linuxidc.com/Linux/2012-05/60639.htm

Django 实战教程 http://www.linuxidc.com/Linux/2013-09/90277.htm

Django Python MySQL Linux 开发环境搭建 http://www.linuxidc.com/Linux/2013-09/90638.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2270字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中