django 板块动态切换

需求:在同一页面的不同板块上可以实现动态切换,使用一个view实现,具体如下图所示,点击phy显示物理机列表,点击vm显示虚机列表,phy、vm对应的url均是动态生成:

             

实现思路:

1.新建两个表,servers表用于存放服务器种类,pvserver物理机虚机具体服务器信息。物理机和虚机不要分别存放于两个表中,这样的话在view中无法直接通过服务器类型得出相应的服务器列表

#存放服务器类型
class servers(models.Model):
    serverid = models.IntegerField(primary_key=True,unique=True)
    servertype = models.CharField(max_length=20)
    def __str__(self):
        return self.servertype

#存储物理机和虚机服务器列表
class pvserver(models.Model):
    servertype = models.ForeignKey(servers,to_field=‘serverid‘,db_column=‘servertype‘) #设置外键,关联到servers表的serverid,保证服务器类型的一致
    name = models.CharField(max_length=100)
    def __str__(self):
        return self.name

2.两个表同步到DB后,将其注册到admin后台,用于添加服务器信息

from .models import hv,vm,servers,physerver,vmserver,pvserver
class serversAdmin(admin.ModelAdmin):
    #fields = [‘sn‘, ‘ip‘]
    fieldsets = [
        (None,               {‘fields‘: [‘serverid‘]}),
        (None,               {‘fields‘: [‘servertype‘]}),

    ]
    list_display = (‘serverid‘, ‘servertype‘) #add more columns.
admin.site.register(servers,serversAdmin)
class pvserverAdmin(admin.ModelAdmin):
    #fields = [‘sn‘, ‘ip‘]
    fieldsets = [
        (None,               {‘fields‘: [‘servertype‘]}),
        (None,               {‘fields‘: [‘name‘]}),

    ]
    list_display = (‘servertype‘, ‘name‘) #add more columns.
admin.site.register(pvserver,pvserverAdmin)  

3.新建view:

方法一(简单),直接查询pvserver表:

def servers(request,serverid): #serverid从下面的types中遍历出来,为了省事,才在该视图下使用types,其实types应该从另一个页面下使用
    types = serversm.objects.all() #得出所有的服务器种类,在前端web展示
    serverall = pvserver.objects.filter(servertype=serverid)
    context={‘serverall‘:serverall,‘types‘:types}
    return render(request,‘aptest/servers.html‘,context)

方法二,先查询servers表,然后再通过外键查询pvserver表:

def servers(request,serverid): #serverid从下面的types中遍历出来,为了省事,才在该视图下使用types,其实types应该从另一个页面下使用
    serverlist = serversm.objects.get(serverid=serverid) #from aptest.models import servers as serversm
    types = serversm.objects.all() #得出所有的服务器种类,在前端web展示
    serverall = serverlist.pvserver_set.all() #根据服务器种类遍历出相应的服务器列表
    context={‘serverall‘:serverall,‘types‘:types}
    return render(request,‘aptest/servers.html‘,context)

4.编辑url:

url(r‘^servers/(\d+)/$‘, aptest.servers),

5.访问http://192.168.50.74/aptest/servers/2/可以返回上图。

时间: 2024-10-22 16:40:30

django 板块动态切换的相关文章

Spring整合多数据源实现动态切换

在实际项目中时常需要连接多个数据库,而且不同的业务需求在实现过程当中往往需要访问不同的数据库. jdbc.properties配置文件,配置多个dataSource ##########################MySQL##################################### hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect connection.driver_class=com.mysql.jdbc.

实现flex LinkBar 组件 动态切换ico图标

<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"                        xmlns:s="library://ns.adobe.com/flex/spark"                        xmlns:mx="

mybatis动态切换数据源

(#)背景:由于业务的需求,导致需要随时切换15个数据源,此时不能low逼的去写十几个mapper,所以想到了实现一个数据源的动态切换 首先要想重写多数据源,那么你应该理解数据源的一个概念是什么,DataSourceTransactionManager这个类就是spring中对于数据源的封装,其中DataSource做为 他的一个成员.接下来我们要介绍一下我们切换动态数据源需要使用的类,AbstractRoutingDataSource,先来看看这个类的源码 首先看看这几个变量,targetDa

动态切换tableView中的cell的种类

为什么要动态切换tableView中cell的种类呢?如果项目经理不出这种需求,你也就见不到这篇文章了:) 效果: 源码: 首先,你要准备3种cell,直接继承系统的就行了. // // RootViewController.m // ChangeCell // // Copyright (c) 2014年 Y.X. All rights reserved. // #import "RootViewController.h" #import "YellowCell.h&quo

基于Struts2 Spring ibatis Oracle10g架构 多数据源动态切换实例

一.概述 基于Spring动态配置多数据源,在大型的应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效的提高系统的水平伸缩性,而这样的解决方案就会补同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求以及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据. Spring配置多个数据源的方式和具体使用过程,Spring对于多数据源,以数据库表为参照,大体上可以分为两大类情况: 1.表级上的跨数据库,即对于不同的数据库却有不相同的表(表名和表结构完全

Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法(转)

一.开篇 这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能.所以在出来数据库方言的时候基本上没有什么问题,但唯一可能出现问题的就是在hibernate做添加操作生成主键策略的时候.因为我们都知道hibernate的数据库本地方言会针对不同的数据库采用不同的主键生成策略. 所以针对这一问题不得不采用自定义的主键生成策略,自己写一个主键生成器的表来维护主键生成方式或以及使用其他的方式来生成

网页动态切换母版页(MasterPage)

原文:网页动态切换母版页(MasterPage) 是否可以变更网页的母版页(MasterPage)呢? 某.aspx在创建时,已经附加入某一母版页(MasterPage)了,现需要.aspx动态变更母版页(MasterPage),也就是说,在.aspx呈现时,能动态切换至另一个母版页(MasterPage)上. 下面Insus.NET尝试一下,似乎能成功实现. 先是在网站上创建两个MasterPage: MasterPage1.master和MasterPage2.master 现在创建一个.a

hibernate动态切换数据源

起因: 公司的当前产品,主要是两个项目集成的,一个是java项目,还有一个是php项目,两个项目用的是不同的数据源,但都是mysql数据库,因为java这边的开发工作已经基本完成了,而php那边任务还很多,人手也比较紧,产品上线日期紧促,所以领导希望java这边能够帮助php那边写接口,所以需要切换数据源 思路: 动态切换数据源确切的来说是在同一类型数据库的情况下的.意思就是说 , 在系统中的使用的数据库分布在多台数据库服务器或者在同台服务器上的多个数据库. 在运行时期间根据某种标识符来动态的选

3D动态切换

<html><head>    <title>3D动态切换效果</title>    <!--必须要引用的JS  开始-->    <script type="text/javascript" src="~/Scripts/jquery-1.7.1.min.js"></script>        <script type="text/javascript"