CMDB之Django admin 後臺app操作

Django的後臺功能非常實用:

首先需註冊app到後臺

cat asset/apps.py
from __future__ import unicode_literals

from django.apps import AppConfig


class AssetConfig(AppConfig):
    name = 'asset'
    verbose_name = '環境列表'   # 後臺顯示的名稱
    
cat asset/admin.py
from django.contrib import admin
from asset.models import Asset_pro, Asset_test, Redis_pro

# Register your models here.
admin.site.register([Asset_pro, Asset_test, Redis_pro])

登陸後臺後,發現操作對象時報錯:get() returned more than one topic -- it returned 2!
原因是數據庫中插入了多條同樣的數據,導致查詢的時候不能區分需要獲取哪一條數據  

wKiom1fIFJbCNNfUAAA-_j9blUM233.png-wh_50

所以需要在models中定義:

class Asset_test(models.Model):
    nodes = models.CharField(max_length=20, verbose_name=u'應用節點')
    applications = models.CharField(max_length=30, verbose_name=u'應用名', primary_key=True) #後臺app默認更改對象
    ipaddr = models.CharField(max_length=20, verbose_name=u'IP地址')  #需定義primary_key,否則會自動創建id列
    mobile = models.CharField(max_length=20, verbose_name='mobile')
    DMS = models.CharField(max_length=5, verbose_name='DMS')
    flag = models.CharField(max_length=5, verbose_name='flag')

    def __unicode__(self):
        return u"%s" %(self.ipaddr)

    class Meta:
        db_table = 'fcenv_test'  #表名,默認爲app名+類名
        verbose_name = u'測試環境服務信息'
        verbose_name_plural = u'測試環境資產管理'

原則是必須要有一列數據是primary_key,然後後天操作數據時正常。

wKioL1fIFOGSscpVAAAMTHifn-A733.png-wh_50


後臺修改數據,前端實時展現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章