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

Django模型的Field Types总结

除了ForeignKey, ManyToManyField 和 OneToOneField之外,每个类型的字段都有一个可选的第一位置参数-详细的名字。...如果没有给出详细的名称,Django将自动使用字段的属性名来代替他。替代过程中会转换下划线为空格。...原来verbose_name字段就是为ForeignKey, ManyToManyField 和 OneToOneField这三种关系准备的啊!...20、SlugField 只能包含字母,数字,下划线和连字符的字符串,通常被用于URLs表示。可选参数max_length=50,prepopulate_from用于指示在admin表单中的可选值。...21、SmallIntegerField 小整数字段,类似于IntegerField,取值范围依赖于数据库特性,[-32768 ,32767]的取值范围对Django所支持的数据库都是安全的。

1.3K20

Django---ORM操作大全

models.DateTimeField(null=True) date=models.DateField() 3、数字字段 (max_digits=30,decimal_places=10)总长度30...1、无需连表查询性能低,省硬盘空间(选项不固定时用外键) 2、在modle文件里不能动态增加(选项一成不变用Django的choice) 其他字段 db_index = True 表示设置索引 unique...、反向连表操作的认定无非是Foreign_Key字段在哪张表决定的, Foreign_Key字段在哪张表就可以哪张表使用Foreign_Key字段连表,反之没有Foreign_Key字段就使用与其关联的...小写表名; 1对多:对象.外键.关联表字段,values(外键字段__关联表字段) 多对多:外键字段.all() 反向连表操作总结:  通过value、value_list、fifter 方式反向跨表...('Boy')字段(杂交类型) ManyToManyField()字段创建第3张关系表,可以使用字段跨表查询,但无法直接操作第3张表, 自建第3表关系表可以直接操作,但无法通过字段 查询,我们可以把他们结合起来使用

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

    Django之路由层

    author = models.ManyToManyField(to='Author') # django orm会自动帮我们创建书籍和作者的第三张关系表 # author这个字段是一个虚拟字段能在表中展示出来...则是我们为有名分组命的名,并且int会将匹配成功的结果转换成整型后按照格式(year=整型值)传给函数year_archive #用一个int转换器可以替代多处正则表达式 path('articles...slug,匹配字母、数字以及横杠、下划线组成的字符串。 uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。...def to_python(self, value): return int(value) def to_url(self, value): return value # 匹配的regex是两个数字...,返回的结果也必须是两个数字 在urls.py中,使用 register_converter 将其注册到URL配置中: from django.urls import path,register_converter

    1.6K21

    Django之ORM字段和参数

    ---- TextField    文本类型,可以储存大段的字符串,如博客内容等 ---- DateField    日期字段,日期格式  YYYY-MM-DD,相当于Python中的datetime.date...---- OneToOneField    一对一字段。通常一对一字段用来扩展已有字段。 ---- ManyToManyField    用于表示多对多的关联关系。...、数字、下划线、连接符(减号) CommaSeparatedIntegerField(CharField) - 字符串类型,格式必须为逗号分割的数字 UUIDField...ManyToManyField参数 to                        设置要关联的表 ---- related_name            同ForeignKey字段。...---- through      在使用ManyToManyField字段时,Django将自动生成一张表来管理多对多的关联关系。

    3.1K60

    Django之ForeignKey和ManyToManyField多表查询

    多表查询是模型层的重要功能之一, Django提供了一套基于关联字段独特的解决方案....ManyToManyField.through_fields 上文示例中Membership 有两个外键指向Person (person 和inviter),这使得关联关系含混不清并让Django 不知道使用哪一个...ManyToManyField 字段的模型的外键名称(本例中为group),field2 为指向目标模型的外键的名称(本例中为person)....ManyToManyField.db_table 默认情况下,关联表的名称使用多对多字段的名称和包含这张表的模型的名称以及Hash值生成,如:memberShip_person_3c1f5 若要想要手动指定表的名称...flight.reserve.remove(user) flight.save() 参考资料: django文档-模型字段-关联字段 django文档 - 执行查询 - 关联的对象 django文档 -

    2.4K10

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

    、数字、下划线、连接符(减号) CommaSeparatedIntegerField(CharField) - 字符串类型,格式必须为逗号分割的数字 UUIDField...ManyToManyField 用于表示多对多的关联关系。在数据库中通过第三张表来建立关联关系。...through: 在使用ManyToManyField字段时,Django将自动生成一张表来管理多对多的关联关系。...若你的表的名字是一个 SQL 保留字, 或包含 Python 变量名不允许的字符--特别是连字符 --没关系. Django 会自动在幕后替你将列名字和表名字用引号引起来。...的格式为:(permission_code, human_readable_permission_name). unique_together unique_together这个选项用于:当你需要通过两个字段保持唯一性时使用

    3.7K80

    Django中ORM操作

    models.DateTimeField(null=True) date=models.DateField() 3、数字字段 (max_digits=30,decimal_places=10)总长度...1、无需连表查询性能低,省硬盘空间(选项不固定时用外键) 2、在modle文件里不能动态增加(选项一成不变用Django的choice) 其他字段 db_index = True 表示设置索引 unique...一对多:models.ForeignKey(其他表) 多对多:models.ManyToManyField(其他表) 一对一:models.OneToOneField(其他表) 正向连表操作总结: 所谓正...、反向连表操作的认定无非是Foreign_Key字段在哪张表决定的, Foreign_Key字段在哪张表就可以哪张表使用Foreign_Key字段连表,反之没有Foreign_Key字段就使用与其关联的...小写表名; 1对多:对象.外键.关联表字段,values(外键字段__关联表字段) 多对多:外键字段.all() 反向连表操作总结: 通过value、value_list、fifter

    5.3K10

    Django 学习笔记之模型(上)

    最后,别忘记在 setting.py 中将新创建的 app 激活。...我们可以设定三者的字段以及关系。 假设作者有姓名、Email 邮箱这两个数据属性。 假设出版社有出版社名称、地址这两个属性。 书籍有两四个属性:书名、出版日期、作者、出版社。...它带有两个可选参数:auto_now 和 auto_now_add。auto_now 表示当对象保存时,该字段会自动设置成当前时间。一般用于记录“修改时间” 。...当 ForeignKey 中有个字段 unique 被设置为 True 时, 就表示一对一关系。 3)ManyToManyField:属于模型间关系中的多对多关系。...在数据库中 Django 创建一个中间表来表示 ManyToManyField 关系。默认情况下,中间表的名称由两个关系表名结合而成。所以刚才我们创建数据库表的途中,会有四张表,而不是三表。

    2.3K30

    django 1.8 官方文档翻译:2-1-1 模型语法

    在哪个模型中设置 ManyToManyField 并不重要,在两个模型中任选一个即可 —— 不要两个模型都设置。 通常,ManyToManyField 实例应该位于可以编辑的表单中。...按照上面的方式,在Pizza 的表单中将允许用户选择不同的Toppings。 另见 完整的示例参见多对多关系模型示例。 ManyToManyField 字段还接受别的参数,在模型字段参考中有详细介绍。...但是,有时你可能需要关联数据到两个模型之间的关系上。 例如,有这样一个应用,它记录音乐家所属的音乐小组。我们可以用一个ManyToManyField 表示小组和成员之间的多对多关系。...对于这些情况,Django 允许你指定一个模型来定义多对多关系。 你可以将其他字段放在中介模型里面。源模型的ManyToManyField 字段将使用through 参数指向中介模型。...zip_code = models.ForeignKey(ZipCode) 字段命名的限制 Django 对字段的命名只有两个限制: 字段的名称不能是Python 保留的关键字,因为这将导致一个Python

    5.9K20

    第 03 篇:创建 Django 博客的数据库模型

    学习 2 title 2 text 2 2019-7-2 django django 学习 3 title 3 text 3 2019-7-3 Python Python 学习 其中文章 ID 是一个数字...当然 django 还为我们提供了多种其它的数据类型,如日期时间类型 DateTimeField、整数类型 IntegerField 等等。...body = models.TextField() # 这两个列分别表示文章的创建时间和最后一次修改时间,存储时间的字段用 DateTimeField 类型。...提示: 在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读 django 官方文档 关于字段类型的介绍[1] 来了解有哪些数据类型可以使用以及如何使用它们。...详细示例[3]•django ManyToManyField 简介[4]•django ManyToManyField 详细示例[5] References [1] 关于字段类型的介绍: https:/

    88640
    领券