`
897371388
  • 浏览: 529392 次
文章分类
社区版块
存档分类
最新评论

基于Django的xadmin项目应用

 
阅读更多

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





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics