首页
学习
活动
专区
圈层
工具
发布

django-ForeignKey,OneToOneField,ManyToManyField

进入到django自带的related.py中,可以看到 1.ForeignKey 初始化的参数有: to, on_delete, related_name=None, related_query_name...models.Model): author = models.CharField(max_length=250) class Books(models.Model): book = models.ForeignKey...:删除带有外键的信息时,定义了删除的操作: CASCADE:删除作者信息一并删除作者名下的所有书的信息; PROTECT:删除作者的信息时,采取保护机制,抛出错误:即不删除Books的内容; SET_NULL...:只有当null=True才将关联的内容置空; SET_DEFAULT:设置为默认值; SET( ):括号里可以是函数,设置为自己定义的东西; DO_NOTHING:字面的意思,啥也不干,你删除你的干我毛线关系

88630
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django之ForeignKey和ManyToManyField多表查询

    ForeignKey 来自Django官方文档的模型示例: from django.db import models class Blog(models.Model): name = models.CharField...blog = models.ForeignKey(Blog, to_field=Blog.name) ForeignKey.db_constraint Django Model的ForeignKey字段的主要功能是维护一个一对多的关系...ForeignKey.related_name 这个名称用于让关联的对象反查到源对象. 如果你不想让Django 创建一个反向关联,请设置related_name 为 '+' 或者以'+' 结尾....修改e.blog并调用save方法存入数据库 >>> e.blog = some_blog >>> e.save() 如果ForeignKey 字段有null=True 设置(即它允许NULL值),可以分配...来删除对应的关联性 >>> e = Entry.objects.get(id=2) >>> e.blog = None >>> e.save() # "UPDATE blog_entry SET blog_id = NULL

    2.5K10

    python测试开发django-37.外键(ForeignKey)查询

    前言 前面在admin后台页面通过设置外键,可以选择下拉框的选项,本篇主要讲解关于外键(ForeignKey)的查询 models设计 在上一篇的基础上新增一个BankName表,Card表通过外键关联到...default="") add_time = models.DateField(auto_now=True, verbose_name="添加时间") bank_info = models.ForeignKey...makemigrations 和migrate,同步数据 python manage.py makemigrations python manage.py migrate shell模式新增测试 为了调试方便,可以使用django...反向查询,当ForeignKey没设置related_name参数,默认是通过关联表的名称加_set去查询 查询结果是QuerySet集合对象 count()函数统计查询个数 [0].card_id 下标取值...(BankName, related_name='card_bank', on_delete=models.CASCADE, default="") grade = models.ForeignKey

    1.9K20

    Django小技巧08: Blank or Null

    翻译整理自: simpleisbetterthancomplex.com Django Model API 中提供了blank和null两个参数, 非常容易混淆。...当我第一次使用 Django 的时候, 总是不能恰当的使用这两个参数。 看起来两者都做了几乎相同的事情, 但是这两者还是有区别的: null: 数据库相关; 定义数据库字段的值是否接受空值。...在数据库级别上, 该字段可以为 NULL, 但在应用程序级别上, 它是必填字段(前提你通过 Django 标准的 Form 进行判断)。...大多数开发人员都对基于字符串的字段(CharField和TextField)定义null=True, 这其实是没有必要的, 应该避免这样做,因为 Django约定使用空字符串设置空值, 而非Null....=True) birth_date = models.DateField(null=True, blank=True) # 可选填写 (这里你应该设置null=True) 默认值 null: False

    1.3K30

    Django官方文档小结(一) -- Models模型

    Django 关系字段 本文主要内容是关于Django框架中models的知识小结 #1 环境 Python3.7.3 Django==2.0.7 #2 字段 #2.1 一对多(ForeignKey)...一对多 : fk字段在"多"的models中定义 from django.db import models class Blog(models.Model): name = models.CharField...('关联表', 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(可执行对象) #2.4 数据库表示 在生成数据库时,Django追加"_id"字段名称来创建其数据库列名,可以通过指定显式更改此内容db_column

    1.1K20
    领券