文章目录

  • 外键的使用
  • 插入数据

外键的使用

  • 作者与书籍是一对多的关系,一个作者可以出版多本书籍,但一个书籍只能有一个作者出版
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数据模型外键的使用相关推荐

  1. django 设置外键_django2.0前后版本定义外键和一对一关系的差别

    概述 Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete',简单记录下解决过程. ...

  2. django 获取外键对应数据的方式

    模型 models.py中 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' ...

  3. django ForeignKey 外键和表关系

    表与表之间的关联,我们可以用ForeignKey 建立关联. ForeignKey( to,  on_delete,  **options ) 参数一:引用的是哪一个模型(表): 参数二:当使用的外键 ...

  4. Django的外键创建

    关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CA ...

  5. Django annotate: 外键字段解析问题

    错误信息: FieldError:Cannot resolve keyword 'entry' into field. Choices are:xx,xx,xx, Models: class Ami( ...

  6. 如何查看表或列的所有外键?

    在MySQL中,如何获取指向特定表的所有外键约束的列表? 特定的列? 这与该Oracle问题相同,但适用于MySQL. #1楼 发布旧答案以添加一些有用的信息. 我有一个类似的问题,但我也想看看CON ...

  7. mysql 外键详解_mysql外键详解

    1.1.MySQL中"键"和"索引"的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确 ...

  8. Django从理论到实战(part32)--外键删除

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 外键删除 在学习外键删除之前,我们先学习一下外键. 外键 比如,我们有一个User和一个Article两个模型,U ...

  9. django不修改数据库创外键_Django——model(建表,增删改查,外键,多对多)

    数据库操作 dbfirst:数据库优先 codefirst(ORM):代码优先,sqlalchemy和DJango都是用的这种 创建表 a.在app下的models.py中,创建类 from djan ...

最新文章

  1. 用python编写ios应用
  2. Weblogic 10.3.6 for linux 集群安装
  3. MySQL 参数autoReconnect=true 解决8小时连接失效(转)
  4. win2008文件服务器fs,文件服务器 fs
  5. 【Linux网络编程】端口绑定问题
  6. c语言 乱码转化为16进制_面向小白的C语言科普教程(一)文件和扩展名、编码和十六进制...
  7. Shell运算符及条件判断
  8. JVM调优总结(3):垃圾回收面临的问题
  9. LINQ TO SQL (一):1. 对象关系设计器(O/R 设计器)
  10. 去掉右键新建菜单多余内容
  11. ExtJs六(ExtJs Mvc首页展示)
  12. 9-21 调试javaweb 数据库连接感想
  13. .net中即时消息发送的实现
  14. centos6.9安装虚拟机kvm
  15. Mono产品生命周期
  16. python播放wav音频文件源码
  17. iPad怎么截屏?iPad快速截图的7种方式
  18. 计算机用户要以ADSL,建设项目进度控制超星尔雅期末答案
  19. 计算机系统如何禁止删除文件,如何彻底删除文件防止恢复【详细介绍】
  20. textarea 手机端无法换行_在某一些手机的安卓浏览器上textarea标签的placeholder不自动换行的解决方法...

热门文章

  1. MatplotlibPandas教程
  2. 24届近3年浙江工业大学自动化考研院校分析
  3. Python学习——类与对象
  4. GDAL编译报错ogr_sfcgal.h:34:34:fatal error:SFCGAL/capi/sfcgal_c/h:No such file or directory
  5. #php 递归获取下级元素#
  6. centos7系统定时任务cron配置详解
  7. [20210502]LeetCode每日一题 - 554. 砖墙
  8. suricata mysql_Suricata启用Hyperscan支持以及Prelude-siem安装方法.md
  9. 03——go开发工具
  10. 整流器,二极管损耗,电容补偿介绍