多对多
方法一 :双外键关联 自定义关系表 自定义
class Host(models.Model):
nid = models.AutoField(primary_key=True)
hostname = models.CharField(max_length=,db_index=True)
ip = models.GenericIPAddressField(protocol="ipv4",db_index=True)
port = models.IntegerField()
b = models.ForeignKey(to="Business", to_field='id',on_delete=models.CASCADE)
classs Application(models.Model):
name = models.CharField(max_length=)
class HostToApp(models.Model):
hobj = models.ForeignKey(to='Host',to_field='nid',on_delete=models.CASCADE)
aobj = models.ForeignKey(to='Application',to_field='id',on_delete=models.CASCADE) 第三张表 往多对多加数据
HostToApp.objects.create(hobj_id=,aobj_id=) 方法二:自动创建关系表 只能创建三列
class Application(models.Model):
name = models.CharField(max_length=)
r = models.ManyToManyField('Host') 无法直接对第三张表进行操作 通过r进行间接操作
obj = Application.objects.get(id=) 选定了 Application id =
obj.name
增加
obj.r.add()在第三张表 application id= host id为2
obj.r.add(*[,,,]) application id = host id= , , ,
删除
obj.r.remove()
obj.r.remove(,)
obj.r.remove(*[,,])
清空
obj.r.clear() 删除有application id = 1的所有行
修改
obj.r.set([,,]) 做完这个只保存这个关系 aid= hid= aid= hid= 查找/获取
obj.r.all() 为host对象“列表” queryset
for host in obj.r.all():
print(host.name) 多选select
<select id="host_list" name="host_list" multiple>
{%for row in b_list%}
<option value="{{row.id}}">{{op.caption}}<option>
{% endfor %}
<select> $.ajax({
url: '/ajax_add_app',
// data: {'user': 123,'host_list': [1,2,3,4]},
data: $('#add_form').serialize(), #将当前标签下的数据全部提交
type: "POST",
dataType: 'JSON', // 内部 自身转换
traditional: true, //当需要发列表时,需添加这个
success: function(obj){
console.log(obj);
},
error: function () { } }) // 如果发送到后台
//
/*
obj = models.Application.objects.get(id=ai)
obj.name = "新Name"
obj.save()
obj.r.set([1,2,3,4])
*/ position:fixed absolute relative 作业:
主机管理: 增加编辑删除
应用管理: 增加编辑删除

django 笔记7 多对多的更多相关文章

  1. Django笔记 —— 模型

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  2. Web框架——Django笔记

    Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序   ...

  3. Django笔记 —— Admin(Django站点管理界面)

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  4. Django笔记 —— MySQL安装

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  5. Django笔记 —— 模板

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  6. 数据库开发-Django ORM的多对多查询

    数据库开发-Django ORM的多对多查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.联合主键问题 CREATE TABLE `employees` ( `emp_no` ...

  7. django笔记三之admin的管理

    django笔记三之admin的管理 设置自动admin应用 vim todos/settings.py INSTALLED_APPS = ( 'django.contrib.admin', 新版本已 ...

  8. django笔记二之数据库

    django笔记二之数据库 [同步数据库之前的操作] yum install MySQL-python.x86_64 -y 2)开启数据库服务并创建表 创建数据库设置 为utf8: create da ...

  9. django笔记-模型数据模板呈现过程记录(多对多关系)

    首先,推荐一个网址:http://www.tuicool.com/articles/BfqYz2F,因为这里的比我的要有条理,更有利于各位的理解. 以下仅为为个人一次不完整的笔记: 环境:ubuntu ...

随机推荐

  1. hdu4927 Series 1(组合+公式 Java大数高精度运算)

    题目链接: Series 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  2. HDU 5305 Friends (搜索+剪枝) 2015多校联合第二场

    開始对点搜索,直接写乱了.想了想对边搜索,尽管复杂度高.剪枝一下水过去了. 代码: #include<cstdio> #include<iostream> #include&l ...

  3. Docker 命令行和后台參数

    Docker官方为了让用户高速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的用法. Docker 命令行 以下对Docker的命令清单进行简单的介绍,具体内容在兴许章节具 ...

  4. hdu5240

    想了辣么多 貌似就一个条件 #include<bits/stdc++.h> using namespace std; int flag=0;int main(){int t,n,kase= ...

  5. eclipse 设置代码大小和布局里面代码大小

    Eclipse字体大小调整: Window /  Preferences / General / Appearance / ColorsAnd Fonts .在右边的对话框里选择Java – Java ...

  6. ActionBarActivity设置全屏无标题

    新建的Activity继承自ActionBarActivity,设置全屏无标题本来非常easy的事,可是没想到app居然无缘无故的挂,要么就是白屏一片,要么就是黑屏.坑了我一个多小时.!! 原因是Ac ...

  7. python写个简单的文件上传是有多难,要么那么复杂,要么各种,,,老子来写个简单的

    def upload(url,params): ''' 上传文件到server,不适合大文件 @params url 你懂的 @params {"action":"xxx ...

  8. HDU5638 / BestCoder Round #74 (div.1) 1003 Toposort 线段树+拓扑排序

    Toposort   问题描述 给出nn个点mm条边的有向无环图. 要求删掉恰好kk条边使得字典序最小的拓扑序列尽可能小. 输入描述 输入包含多组数据. 第一行有一个整数TT, 表示测试数据组数. 对 ...

  9. nyoj--203--三国志(迪杰斯特拉+背包)

    三国志 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 <三国志>是一款很经典的经营策略类游戏.我们的小白同学是这款游戏的忠实玩家.现在他把游戏简化一下,地图 ...

  10. Python的Flask框架入门-Ubuntu

    全文请见tuts code:An Introduction to Python's Flask Framework Flask是Python一个小而强大的web框架.学起来简单,用起来也容易,能够帮你 ...