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


后台修改数据,前端实时展现。

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