django数据模型外键的使用
文章目录
- 外键的使用
- 插入数据
外键的使用
- 作者与书籍是一对多的关系,一个作者可以出版多本书籍,但一个书籍只能有一个作者出版
class Author(models.Model):name = models.CharField(max_length=30)phone = models.CharField(max_length=11)email = models.EmailField()age = models.IntegerField(default=0)
class Book(models.Model):title = models.CharField(max_length=100)author = models.ForeignKey("Author", on_delete=None)book_time = models.DateTimeField(auto_now_add=True)
- 其中,on_delete字段:
on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为
on_delete=models.CASCADE, # 删除关联数据,与之关联也删除
on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做
on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError
# models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)
# models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')
on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)
on_delete=models.SET, # 删除关联数据,a. 与之关联的值设置为指定值,设置:models.SET(值)b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
插入数据
from django.shortcuts import render
from django.http import HttpResponse
from models import Author,Book
# Create your views here.def insertauthor(request):name = request.GET.get('name')phone = request.GET.get("phone")email = request.GET.get("email")age = request.GET.get("age")author = Author()author.name = nameauthor.phone = phoneauthor.email = emailauthor.age = ageauthor.save()return HttpResponse("ok")
def insertBook(request):title = request.GET.get('title')name = request.GET.get("name")authors = Author.objects.filter(name=name)author = authors[0]book = Book()book.title = titlebook.author = author.idbook.save()return HttpResponse("ok")
def search(request):name = request.GET.get("name")books = Book.objects.filter(author=author)book = books[0]author = book.author.valuestring = "%s %s" % (name, author)return HttpResponse(string)
django数据模型外键的使用相关推荐
- django 设置外键_django2.0前后版本定义外键和一对一关系的差别
概述 Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete',简单记录下解决过程. ...
- django 获取外键对应数据的方式
模型 models.py中 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' ...
- django ForeignKey 外键和表关系
表与表之间的关联,我们可以用ForeignKey 建立关联. ForeignKey( to, on_delete, **options ) 参数一:引用的是哪一个模型(表): 参数二:当使用的外键 ...
- Django的外键创建
关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CA ...
- Django annotate: 外键字段解析问题
错误信息: FieldError:Cannot resolve keyword 'entry' into field. Choices are:xx,xx,xx, Models: class Ami( ...
- 如何查看表或列的所有外键?
在MySQL中,如何获取指向特定表的所有外键约束的列表? 特定的列? 这与该Oracle问题相同,但适用于MySQL. #1楼 发布旧答案以添加一些有用的信息. 我有一个类似的问题,但我也想看看CON ...
- mysql 外键详解_mysql外键详解
1.1.MySQL中"键"和"索引"的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确 ...
- Django从理论到实战(part32)--外键删除
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 外键删除 在学习外键删除之前,我们先学习一下外键. 外键 比如,我们有一个User和一个Article两个模型,U ...
- django不修改数据库创外键_Django——model(建表,增删改查,外键,多对多)
数据库操作 dbfirst:数据库优先 codefirst(ORM):代码优先,sqlalchemy和DJango都是用的这种 创建表 a.在app下的models.py中,创建类 from djan ...
最新文章
- 用python编写ios应用
- Weblogic 10.3.6 for linux 集群安装
- MySQL 参数autoReconnect=true 解决8小时连接失效(转)
- win2008文件服务器fs,文件服务器 fs
- 【Linux网络编程】端口绑定问题
- c语言 乱码转化为16进制_面向小白的C语言科普教程(一)文件和扩展名、编码和十六进制...
- Shell运算符及条件判断
- JVM调优总结(3):垃圾回收面临的问题
- LINQ TO SQL (一):1. 对象关系设计器(O/R 设计器)
- 去掉右键新建菜单多余内容
- ExtJs六(ExtJs Mvc首页展示)
- 9-21 调试javaweb 数据库连接感想
- .net中即时消息发送的实现
- centos6.9安装虚拟机kvm
- Mono产品生命周期
- python播放wav音频文件源码
- iPad怎么截屏?iPad快速截图的7种方式
- 计算机用户要以ADSL,建设项目进度控制超星尔雅期末答案
- 计算机系统如何禁止删除文件,如何彻底删除文件防止恢复【详细介绍】
- textarea 手机端无法换行_在某一些手机的安卓浏览器上textarea标签的placeholder不自动换行的解决方法...
热门文章
- MatplotlibPandas教程
- 24届近3年浙江工业大学自动化考研院校分析
- Python学习——类与对象
- GDAL编译报错ogr_sfcgal.h:34:34:fatal error:SFCGAL/capi/sfcgal_c/h:No such file or directory
- #php 递归获取下级元素#
- centos7系统定时任务cron配置详解
- [20210502]LeetCode每日一题 - 554. 砖墙
- suricata mysql_Suricata启用Hyperscan支持以及Prelude-siem安装方法.md
- 03——go开发工具
- 整流器,二极管损耗,电容补偿介绍