首页 > 代码库 > 关于django xadmin的学习改造(菜单名称,更改默认前缀数据库)
关于django xadmin的学习改造(菜单名称,更改默认前缀数据库)
路径xadmin-master\demo_app\app\models.py
1 class c(models.Model): 2 ip_address = models.CharField(max_length=16) 3 4 #host = models.ForeignKey(Host) 注意此行,添加的是外键查询 5 6 name = models.CharField(max_length=16) 7 testlist = models.CharField(max_length=16) 8 9 def __unicode__(self): 10 return ‘%s c [%s] %s %s‘ % (self.ip_address.name, self.id, 11 self.testlist, self.name) 12 class Meta: 13 #app_label = u‘waf日志‘ #更改数据表表名 14 db_table = ‘testc‘ #更改django默认前缀数据库命名规则,详情代码外 15 verbose_name = u"Awaf Log" #app菜单名字,如果没有则为 name+s,加u是中文 16 verbose_name_plural = verbose_name
‘‘‘
db_table
django默认的数据库命名是加上创建appname_xxx
此功能可以突破,
比如说我的app名字是xadmin,数据库名字c,则默认的就是xadmin_c,数据库名字为xadmin.c,
使用 db_table = ‘testc‘ 则xadmin.c数据库变为testc
操作完后创建在models中新建的规则的表(如果你是自己在mysql新建或者从其他地方导入mysql里的表,非app前缀的表,想使用这些表,继续往下看我的low思路,大牛留情)
python manage.py makemigrations
python manage.py migrate
会在字符命令行中发现 以创建 c 表,注意不是testc
之后在xadmin-master\demo_app\app\adminx.py
from models import IDC, Host, MaintainLog, HostGroup, AccessRecord, c #注意是c
1 class MaintainLogAdmin1(object): 2 list_display = ( 3 ‘ip_address‘, ‘name‘, ‘testlist‘) 4 list_display_links = (‘ip_address‘,) 5 6 list_filter = [‘ip_address‘, ‘name‘, ‘testlist‘] 7 search_fields = [‘ip_address‘] 8 9 form_layout = ( 10 Col("col2", 11 Fieldset(‘ip_address‘, 12 ‘name‘, ‘testlist‘, 13 css_class=‘unsort short_label no_title‘ 14 ), 15 span=9, horizontal=True 16 ), 17 Col("col1", 18 Fieldset(‘ip_address‘, 19 ‘name‘, ‘testlist‘ 20 ), 21 span=3 22 ) 23 ) 24 reversion_enable = True 25 xadmin.sites.site.register(c,MaintainLogAdmin1) #看这里,注意导入的是c,也就是上文提到的,在命令行看见创建成功记录的表名
不出意外,刷新页面成功了,有问题,咱讨论讨论,我是菜鸟,这里主要就是关于models.py里的模板类里的 class Meta:中db_table的使用,感兴趣的去千百度这个类
如果你的数据库表是从外部导入的非app前缀的,有几种思路,最low的就是替换法,return到最上面,创建一个和你从外部导入的表一样名字的表,然后在mysql图形界面客户端更改替换,注意在models里的规则要一直,复制粘贴的时候要注意是否有外键,罗嗦完毕
还有比较高级的思路,就是用数据库的触发器更新,当一个表更新的时候,自动同步到另一个表,知乎上有,么么哒
‘‘‘
关于修改xadmin 首页 标题 和 首页 页脚 标题 网上也有,还有修改xadmin菜单图标
在xadmin-master\demo_app\app\adminx.py
class GlobalSetting(object): site_title = ‘Awaf L0g System‘ #修改首页标题 site_footer = ‘Awaf_Team‘#修改首页页脚标题 #global_search_models = [Host, IDC] global_models_icon = { Host: ‘fa fa-laptop‘, c: ‘fa fa-cloud‘, #修改菜单图标 大概格式就是fa fa-xxx,这里我把idc的图标改成了c的图标 } menu_style = ‘default‘#‘accordion‘ xadmin.sites.site.register(views.CommAdminView, GlobalSetting)
----------更新
在用
python manage.py makemigrations
python manage.py migrate
更改数据库表名的时候,如果出现太乱的话,由于之前创建删除多个模块,导致太乱,
到xadmin-master\demo_app\app\migrations 删除多余再更新创建
关于django xadmin的学习改造(菜单名称,更改默认前缀数据库)