增加一个知识点,当表中有多对多关联时,在前端展示的时候是一个列表,所以在展示的时候需要这样做;

表结构:

class ProjectEnv(models.Model):
project = models.ForeignKey(verbose_name='项目', to='Project')
env_choices = (
(1, '测试'),
(2, '正式')
)
env = models.IntegerField(verbose_name='环境', choices=env_choices)
path = models.CharField(verbose_name='线上部署路径', max_length=128)
servers = models.ManyToManyField(verbose_name='服务器', to='Server')

前端页面:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body> <h1 class="container">环境展示</h1> <div class="container"> <form action="" method="post">
{% csrf_token %}
<a href="{% url 'web:addprojectenv' %}" class="btn btn-success">添加数据</a>
<table class="table table-hover">
<thead>
<tr>
<td>序号</td>
<td>项目</td>
<td>环境</td>
<td>线上部署路径</td>
<td>服务器</td>
<td>操作</td>
</tr>
</thead>
<tbody>
{% for d in data %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ d.project.title }}</td>
<td>{{ d.env }}</td>
<td>{{ d.path }}</td>
<td>
<---->d.servers.values点出来的是一个queryset类型是一个列表,所以循环这个列表,然后获取每一个字典的值就行</---->
{% for datum in d.servers.values %}
{{ datum.hostname }}
{% endfor %}
</td>
<td>
<a href="{% url 'web:editprojectenv' d.id %}" class="btn btn-info">编辑</a>
<a href="{% url 'web:deleteprojectenv' d.id %}" class="btn btn-danger">删除</a>
</td>
</tr>
{% endfor %} </tbody>
</table>
</form> </div> </body>
</html>

还有一个方法就是在models文件里写一个方法,将这个对象获取写一个列表推导式

class ProjectEnv(models.Model):
project = models.ForeignKey(verbose_name='项目', to='Project')
env_choices = (
(1, '测试'),
(2, '正式')
)
env = models.IntegerField(verbose_name='环境', choices=env_choices)
path = models.CharField(verbose_name='线上部署路径', max_length=128)
servers = models.ManyToManyField(verbose_name='服务器', to='Server') def get_hostname(self):
return ','.join([i["hostname"] for i in self.servers.values()])

Django中多表关联的展示问题:的更多相关文章

  1. RDIFramework.NET 中多表关联查询分页实例

    RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...

  2. Django中的表单

    目录 表单 Django中的表单 用表单验证数据 自定义验证 表单 HTML中的表单是用来提交数据给服务器的,不管后台服务器用的是 Django  还是 PHP还是JSP还是其他语言.只要把 inpu ...

  3. MyBatis 中两表关联查询MYSQL (14)

    MyBatis 中两表关联查询MYSQL 1.创建数据库表语句 2.插入测试数据 3.pom文件内容 <?xml version="1.0" encoding="U ...

  4. Mybatis中多表关联时,怎么利用association优雅写resultMap来映射vo

    前言 有好一阵没碰mybatis了,这次的项目基于性能考虑,选了mybatis,写着写着,发现有下面的需求,比如两表联查,取其中各一部分字段,怎么更方便地用vo来接,这里犯了难: 我想的是,因为这个s ...

  5. Yii2中多表关联查询(join、joinwith)

    我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order      (id  order_name ...

  6. [moka同学笔记]Yii2中多表关联查询(join、joinwith) (摘录)

    表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order          (id  order_name       cu ...

  7. Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)

    我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order          (id  order_ ...

  8. Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)

    我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order          (id  order_ ...

  9. django中form表单的提交:

    一,关于表单: 表单在百度百科的解释:   表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...

随机推荐

  1. 保姆级教程,带你认识大数据,从0到1搭建 Hadoop 集群

    大数据简介,概念部分 概念部分,建议之前没有任何大数据相关知识的朋友阅读 大数据概论 什么是大数据 大数据(Big Data)是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需 ...

  2. pytorch实现 | Deformable Convolutional Networks | CVPR | 2017

    文章转载自微信公众号:[机器学习炼丹术],请支持原创. 这一篇文章,来讲解一下可变卷积的代码实现逻辑和可视化效果.全部基于python,没有C++.大部分代码来自:https://github.com ...

  3. angular8 页面滚动到某一个特定位置

    背景:使用angular8安装的 Fuse-v8.0.0-demo 后台的框架 锚点: id='nearby' 流程:无论是点击触发方法也好,还是直接调用方法也好,这里只写 引入: import {C ...

  4. Yii2 给表添加字段后报错 Getting unknown property

    手动在数据库中添加了image字段 然后再模型类Image中的 rule方法也将image的验证规则放进去了 但是在 $model = new Image 后,使用$model->iamge 还 ...

  5. SpringBoot从入门到精通教程(四)

    前端时间整合SSM ,发现了一个现象,在整合的时候 配置文件过于复杂. 1.建工程,建目录,导入jar包. 2.配置 数据源 映射信息 等等 ... 3. 还有 各种 拦截器,控制器 ,头都大了... ...

  6. Vue必须必须要注意的几个细节

    1.每次执行完,尽量npm run dev 一次,有时候又缓存问题 2.安装sass 一.使用save会在package.json中自动添加.因为sass-loader依赖于node-sass npm ...

  7. Android 7.0应用之间共享文件

    原文首发于微信公众号:躬行之,欢迎关注交流! 开发中经常需要将某个文件向另一个应用程序传递,如图片上传到另一个应用程序.文件在不同存储路径之间的复制粘贴等都需要共享文件,可以这样理解接收文件的应用是在 ...

  8. maven项目修改名称后,打包名称和现在名称不一致

    将pom.xm文件中 <artifactId>health</artifactId> 修改成现在项目名称,然后 maven clean ->maven install 如 ...

  9. webpack相关的问题

    随着现代前端开发的复杂度和规模越来越庞大,已经不能抛开工程化来独立开发了,如react的jsx代码必须编译后才能在浏览器中使用:又如sass和less的代码浏览器也是不支持的. 而如果摒弃了这些开发框 ...

  10. LInux学习笔记之常用命令

    以下命令主要是平时用到的命令,对于一些经常用到的,就收集资料,归纳一下. 指令目录: 1.yum命令: 2.wget命令: 3.tar命令: 4../configure,make,make insta ...