码迷,mamicode.com
首页 > 移动开发 > 详细

CMDB之Django admin 后台app操作

时间:2016-09-02 01:00:24      阅读:589      评论:0      收藏:0      [点我收藏+]

标签:django   admin   数据库   primary_key   get() returned more than one topic -- it returned 2!   

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!
原因是数据库中插入了多条同样的数据,导致查询的时候不能区分需要获取哪一条数据  

技术分享

所以需要在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,然后后天操作数据时正常。

技术分享


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

本文出自 “创者思” 博客,请务必保留此出处http://strongit.blog.51cto.com/10020534/1845338

CMDB之Django admin 后台app操作

标签:django   admin   数据库   primary_key   get() returned more than one topic -- it returned 2!   

原文地址:http://strongit.blog.51cto.com/10020534/1845338

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!