首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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:字面的意思,啥也不干,你删除你的干我毛线关系..., db_table=None, swappable=True, **kwargs 、

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

    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字段的主要功能是维护一个一对多的关系...只有在db_constraint=True时Django model才会在数据库上建立外键约束, 在该值为False时不建立约束. 默认db_constraint=True....ForeignKey.related_name 这个名称用于让关联的对象反查到源对象. 如果你不想让Django 创建一个反向关联,请设置related_name 为 '+' 或者以'+' 结尾....修改e.blog并调用save方法存入数据库 >>> e.blog = some_blog >>> e.save() 如果ForeignKey 字段有null=True 设置(即它允许NULL值),可以分配

    1.8K10

    模型

    AutoField # 布尔字段,值为True或False Booleanfield # 支持Null、True、False三种值 NullBooleanField # 字符类型,必须提供max_length...,表示允许为空,默认值是False null # 如果为True,则该字段允许为空白,默认值是False blank # 字段的名称,如果未指定,则使用属性的名称 db_column # 若值为True...auto_now 外键字段: # 一对一 OneToOneField # 一对多 ForeignKey # 多对多 ManyToManyField title = models.ForeignKey...# 删除关联数据,与之关联也删除 models.CASCADE # 删除关联数据,引发错误IntegrityError models.DO_NOTHING # 删除关联数据,引发错误ProtectedError...models.PROTECT # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_NULL # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值

    20730

    Django模型

    BooleanField 布尔字段,值为True或False NullBooleanField 支持Null、True、False三种值 CharField 字符串,参数max_length表示最大字符个数...null参数是数据库层面的,设置null=True之后,表示数据库的该字段可以为空;blank参数是表单层面(HTML),blank=True之后,表示表单填写该字段的时候可以不填。...=True, verbose_name='描述信息') book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name...,仅在该字段null=True允许为null时可用 SET_DEFAULT设置为默认值,仅在该字段设置了默认值时可用 SET()设置为特定值或者调用特定方法 DO_NOTHING不做任何操作,如果数据库前置指明级联性...,此选项会抛出IntegrityError异常 注意:我们在数据库中,设置外键的时候需要制定另一张表中关联的字段,但是在Django里并没有指定。

    1.9K20

    Django之ORM字段和参数

    ---- FileField           字符串(储存文件路径),Django Admin以及ModelForm中提供读取文件夹下文件的功能 关系字段 ---- ForeignKey     ...(null=False,null=True) ---- unique    设置唯一。如果设置为unique=True 则该字段在此表中必须是唯一的 。 ---- db_index    设置索引。...---- auto_now    配置上auto_now=True,每次更新数据记录的时候会更新该字段。 ForeignKey参数 ---- to       设置要关联的表。...models.SET_NULL 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_DEFAULT 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值...默认为True。 ---- through      在使用ManyToManyField字段时,Django将自动生成一张表来管理多对多的关联关系。

    2.3K60

    ORM常用字段介绍

    " varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL ); 一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名...Django支持MySQL5.5及更高版本。 Django ORM 常用字段和参数 常用字段 AutoField int自增列,必须填入参数 primary_key=True。...- bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名为id的列 from django.db...models.CASCADE 删除关联数据,与之关联也删除 models.DO_NOTHING 删除关联数据,引发错误IntegrityError models.PROTECT 删除关联数据,引发错误ProtectedError...models.SET_NULL 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_DEFAULT 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值

    2.5K10

    django_mysql_配置

    =True, verbose_name='描述信息') hbook = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name...null是数据库范畴的概念,blank是表单验证范畴的 5) 外键 一般我用CASCADE 在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,在django.db.models...设置为NULL,仅在该字段null=True允许为null时可用 SET_DEFAULT 设置为默认值,仅在该字段设置了默认值时可用 SET() 设置为特定值或者调用特定方法,如 from...get_user_model().objects.get_or_create(username='deleted')[0] class MyModel(models.Model): user = models.ForeignKey...settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user), ) DO_NOTHING 不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError

    1.6K10

    【云+社区年度正文】Django从入门到精通No.2----模型

    中有很多字段,如下: 字段类 默认小组件 说明 AutoField N/A 根据 ID 自动递增的 IntegerField,必填参数primary_key=True,则成为数据库的主键,无该字段时,django...如果想接受 null 值,使用 NullBooleanField 。 CharField TextInput 字符串字段,针对长度较小的字符串。大量文本应该使用 TextField 。...注:数据参考来源w3cschool 上面的字段很容易让人想起数据库中的数据类型,所以这些字段也就会有约束,常用的约束如下: null:字段是否可以为空 blank:是否允许用户输入为空 db_column...(book,on_delete=models.CASCADE) ForeignKey提供了多个参数,如下: ForeignKey() to # 要进行关联的表名...- models.CASCADE,删除关联数据,与之关联也删除 - models.DO_NOTHING,删除关联数据,引发错误IntegrityError

    2.1K00

    【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

    =True, verbose_name='描述信息') book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name...会自动创建属性名为id的自动增长属性 BooleanField 布尔字段,值为True或False NullBooleanField 支持Null、True、False三种值 CharField 字符串...unique 如果为True, 这个字段在表中必须有唯一值,默认值是False null是数据库范畴的概念,blank是表单验证范畴的 6) 外键 在设置外键时,需要通过on_delete选项指明主表删除数据时...,来阻止删除主表中被外键应用的数据 SET_NULL设置为NULL,仅在该字段null=True允许为null时可用 SET_DEFAULT设置为默认值,仅在该字段设置了默认值时可用 SET()设置为特定值或者调用特定方法...DO_NOTHING不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError异常 二、模型类迁移 将模型类同步到数据库中。

    1.4K20

    Django中ORM介绍和字段及其参数

    " varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL ); 一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名...Django支持MySQL5.5及更高版本。  Django中ORM常用的字段和参数 常用的字段 AutoField:int自增型,必须填入参数 primary_key = True 。...models.CASCADE 删除关联数据,与之关联也删除 models.DO_NOTHING 删除关联数据,引发错误IntegrityError models.PROTECT 删除关联数据,引发错误...意思是用于替换本类的表名(同ForeignKey字段)。 symmetrical:仅用于多对多自关联时,指定内部是否创建反向操作的字段。默认为True。...默认值为True,这个选项为True时Django可以对数据库表进行 migrate或migrations、删除等操作。

    2.8K80
    领券