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

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

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

时间: 2024-08-05 06:17:49

CMDB之Django admin 后台app操作的相关文章

Django Admin Cookbook-14如何在Django Admin后台移除“删除所选”操作

14.如何在Django Admin后台移除"删除所选"操作? 默认情况下,Django Admin后台的listview模型列表页,会有一个Delete Selected删除所选操作.假设你需要再从Hero管理模型中移除该删除操作. ModelAdmin.get_actions方法可以返回所有的操作方法.通过覆盖此方法,移除其中delete_selected方法,便可可以从下拉列表中删除它.将Hero管理模型的代码修改如下: def get_actions(self, request

Django Admin Cookbook-40如何为Django Admin覆盖保存操作

40.如何为Django Admin后台覆盖保存操作? ModelAdmin有一个save_model方法,用于创建和更新模型对象.通过覆盖此内容,您可以自定义admin的保存行为. 该Hero模型具有以下字段: added_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL) 如果你希望在Hero对象更新时始终保持为原有用户,则可以进行以下修改: de

Django Admin后台添加用户时出现报错:1452

如果在使用Django Admin后台添加用户时出现报错: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxproject`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id

Django Admin Cookbook-38如何获取特定对象的Django Admin后台URL

38.如何获取特定对象的Django Admin后台URL? Hero模型有一个children字段,显示每个英雄的孩子的名字.你被要求将每个childrin链接到Hero模型更改页面.实现如下: @admin.register(Hero) class HeroAdmin(admin.ModelAdmin, ExportCsvMixin): ... def children_display(self, obj): display_text = ", ".join([ "<

Django Admin后台管理模块的使用

Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django.contrib.sessions django.contrib.comments 激活admin模块的方法是: 1. 在INSTALLED_APPS设置文件中,加入'django.contrib.admin' 2. 再添加 'django.contrib.auth', 'django.contri

django admin后台管理数据复选框的使用

1.admin后台管理数据表,首先需要在admin.py中注册models # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.contrib import admin from .models import test_table from .models import person ''' class ngo_base_info_admin(admin.ModelAdmin): list_dis

Django Admin Cookbook-24如何从两个不同的模型创建一个Django Admin后台页面

24.如何从两个不同的模型创建一个Django管理员? Hero模型外联到Category,因此你可以从Hero管理页面中选择一个Category对象.如果还希望能够从Hero管理页面创建及修改Category对象,则可以更改HeroAdmin管理模型,并自定义 save_model行为. class HeroForm(forms.ModelForm): category_name = forms.CharField() class Meta: model = Hero exclude = ["

Django admin后台操作

Django提供自动后台管理应用,简称admin. admin是一个应用,每个Web站点都需要它.admin通过让开发者可以在完成完整的UI之前验证处理数据的代码. 设置admin 打开settings.py INSTALLED_APPS = ( 'django.contrib.admin', #取消掉这行的注释 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.con

利用django admin后台配置celery定时任务

1.安装djcelery pip install django-celery 2.在Django项目setting配置 A.配置djcelery # CELERY STUFF import djcelery djcelery.setup_loader() BROKER_URL = 'redis://localhost:6379' CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' # 定时任务 CELERY_RESULT_