路徑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 刪除多余再更新創建