博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django学习笔记(4)---ManyToMany 添加、删除关联、查询
阅读量:7172 次
发布时间:2019-06-29

本文共 807 字,大约阅读时间需要 2 分钟。

hot3.png

例如有如下模型

models.py

from django.db import modelsclass person(models.Model):    name = CharField(max_length=30)class book(models.Model):    auther = ManyToManyField(person)

假设p为一个person对象,b为一个book对象

#添加关联b.auther.add(p)#去除关联b.auther.remove(p)#返回所有作者b.auther.all()#反向查询,返回这个人写的所有书,book即为反向查询的模型名p.book_set.all()

如果在models.py中

from django.db import modelsclass person(models.Model):    name = CharField(max_length=30)class book(models.Model):    #当关联同一个模型的字段大于一个时,要使用related_name参数来指定表名    auther = ManyToManyField(person,related_name="auther")     translater = ManyToManyField(person,related_name="translater")
此时反向查询p.book_set.all()不可用,取而代之的为
#返回该人写的所有书,book_set被related_name中指定的表名代替p.auther.all()#返回该人翻译的所有书p.translater.all()

时间比较晚了,写得比较简洁,仅作为个人笔记

转载请注明出处,谢谢!

转载于:https://my.oschina.net/linktime/blog/105280

你可能感兴趣的文章
jquery ajax验证用户名是否存在(后台spring mvc)
查看>>
solaris x86安装ORACLE 11.2.0.3软件时因SWAP不足报错: INFO: ld: fatal: mmap anon failed
查看>>
paoding分词
查看>>
jquery动态创建form表单
查看>>
hdu 5361 2015多校联合训练赛#6 最短路
查看>>
php中PHPMailer发送带附件的电子邮件方法
查看>>
DOCKER_HOST have a weird tcp
查看>>
Redisclient连接方式Hiredis简单封装使用,连接池、屏蔽连接细节
查看>>
微信支付:价格问题:如果支付金额是单位是分,不能带小数点
查看>>
微软小冰发威,招摇人工智能
查看>>
HDOJ 4009 Transfer water 最小树形图
查看>>
Maven的SSH搭建以及部署
查看>>
常用函数 __MySQL必知必会
查看>>
JavaScript--语法4--函数1
查看>>
Spring Boot注解(annotation)列表
查看>>
hdu - 4974 - A simple water problem(贪心 + 反证)
查看>>
.Net性能的方方面面(必看官方经典)
查看>>
java反射调用方法
查看>>
***使用Fiddler进行IOS APP的HTTP抓包
查看>>
ConcurrentHashMap总结
查看>>