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

django 1.8 官方文档翻译: 2-3-1 模型实例参考

如果你需要从数据库重新加载模型一个值,你可以使用 refresh_from_db() 方法。当不带参数调用这个方法,将完成以下动作: 模型所有非延迟字段都更新成数据库的当前值。...如果对象主键属性没有设置或者UPDATE 没有更新任何记录,Django 将执行INSERT。 现在应该明白了,当保存一个新对象,如果不能保证主键值没有使用,你应该注意不要显式指定主键值。...关于这个细微差别的更多信息,参见上文显示指定主键值 和下文强制使用INSERT 或UPDATE。 在Django 1.5 和更早版本,在设置主键Django 会作一个 SELECT。...在Python 3 Django 在许多地方使用str(obj)。 最明显是在Django Admin 站点显示一个对象和在模板插入对象时候。...Django 内部对__str__ 直接使用主要在随处可见模型repr() 输出(例如,调试输出)。

1.9K10

django_mysql_配置

在自己数据创建一个djangi_demo create database django_demo default charset=utf8; ---- 定义模型类 1....2) django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列。...null是数据库范畴概念,blank是表单验证范畴 5) 外键 一般我用CASCADE 在设置外键,需要通过on_delete选项指明主表删除数据,对于外键引用表数据如何处理,在django.db.models...包含了可选常量: CASCADE 级联,删除主表数据连通一起删除外键表数据 PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被外键应用数据 SET_NULL...设置为NULL,仅在该字段null=True允许为null可用 SET_DEFAULT 设置为默认值,仅在该字段设置了默认值可用 SET() 设置为特定值或者调用特定方法, from

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

Django项目知识点(三)

本文一篇完全介绍django最重要model 6.django model 模型是数据唯一而且准确信息来源。它包含正在储存数据重要字段和行为。一般来说,每一个模型都映射一个数据库表。...:id = models.AutoField(primary_key=True),如果没有的话,默认会生成一个名称为id列,如果要显示定义一个自增列,或者如果你非要自己设置主键,那么请务必将字段设置为...注意:Django在一个模型只允许有一个自增字段,并且该字段必须为主键!...models.DateField  日期字段类型date 注意:参数auto_now=True表示每次更新都会更新这个时间;参数auto_now_add表示只是第一次创建添加,之后更新不再改变 models.DateTimeField...DateTimeField.auto_now_add 这个参数默认值也为False,设置为True,会在model对象第一次被创建,将字段值设置为创建时间,以后修改对象,字段值不会再更新

1.8K30

Django教程 —— 模型类详解

引言 在之前 Django模型设计 简单介绍了如何定义模型类,在这篇中将做一个汇总。让大家更加了解Django模型类。...: 当前选择数据库支持字段类型 渲染管理表单使用默认html控件 在管理站点最低限度验证 Django 会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后...定义属性需要指定字段类型,通过字段类型参数指定选项,语法如下: 属性 = models.字段类型(选项) 模型字段类型 使用时需要引入django.db.models 包 from django.db...primary_key 若为True,则该字段会成为模型主键字段,默认值是False。 unique 如果为True, 这个字段在表必须有唯一值,默认值是False。...Meta,用于设置元信息,使用 db_table 自定义表名字。

1.7K20

django2.0入门教程第四节

继上篇 django2.0入门教程第三节,介绍了django2.0视图views和模板template, 本节介绍如何在前台进行投票。...将问题相关选项遍历,以单选框显示 form表单用post方式提交数据 配置url polls/urls.py path('/vote/', views.vote, name...将投票次数加1,并更新数据库 显示投票结果 polls/views.py from django.shortcuts import render, get_object_or_404 # ... def...result.png 优化url和view写法 另一种写法: 将主键id代替question_id polls/urls.py #_*_coding:utf8_*_ from django.urls...入门教程不会对代码进入深入讲解,先大致了解其作用即可,后续再逐个模块进行解析 源码下载 相关源码包 如果对django2.0教程感兴趣,请关注我简书,持续更新...

76520

Django源码学习-3-Model-

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计和Form(表单)使用。...在上一篇中介绍到 models 字段类型,会发现 Django 要生成数据库表字段,只需要在 Django 项目的 app 应用 models.py 文件编写需要数据表字段,便可以在数据库中生成数据库表...参数类型 1、null=True 数据库字段是否可以为空 2、blank=True djangoAdmin添加数据是否可允许空值 主键,对AutoField设置主键后,就会代替原来默认自增id...models.CharField(max_length=2,choices=GENDER_CHOICE) 6、max_length 最大长度 7、default  默认值 8、verbose_name  Admin字段显示名称...Django就会在该行数据增加一个ctime字段 uptime = models.DateTimeField(auto_now_add=True) #当前表任何一行数据有更新Django就会自动更新该字段

70430

【Python全栈100天学习笔记】Day41 Django深入理解框架

字段属性primary_key用于设置主键,max_length用来设置字段最大长度,db_column用来设置数据库与字段对应列,verbose_name则设置了Django后台管理系统该字段显示名称...虽然实际应用,这个后台可能并不能满足我们需求,但是在学习Django框架,我们暂时可以利用Django自带后台管理系统来管理我们模型,同时也可以了解一个项目的后台管理系统到底需要哪些功能。...可能大家已经注意到了,刚才在后台查看部门信息时候,显示部门信息并不直观,为此我们再修改admin.py文件,通过注册模型管理类,可以在后台管理系统更好管理模型。...default 字段默认值 editable 字段在后台模型管理或ModelForm是否显示,默认为True error_messages 设定字段抛出异常默认消息字典,其中键包括null...unique 设置为True,表字段值必须是唯一 verbose_name 字段在后台模型管理显示名称,未指定时使用字段名称 ForeignKey属性 limit_choices_to:值是一个

2.2K30

探索 PythonDjango 支持分布式多租户数据库, Postgres+Citus

在所有主键和唯一约束包含 account_id 2.1 将 account_id 包含到主键 2.2 将 account_id 包含到唯一约束 3....在 Citus 中分发数据 将 Django 应用程序更新为范围查询 使用中间件自动化 更多 在 确定分布策略 ,我们讨论了在多租户用例中使用 Citus 所需与框架无关数据库更改。...将租户列介绍给我们想要分发缺少它模型 更改分布式表主键以包含租户列 更新模型以使用 TenantModelMixin 分发数据 将 Django 应用程序更新为范围查询 准备横向扩展多租户应用程序...一旦您开始分片数据,这就会成为一个问题,特别是当您对嵌套模型本例任务)运行 UPDATE 或 DELETE 查询。 1....在所有主键和唯一约束包含 account_id 2.1 将 account_id 包含到主键 Django 会自动在模型上创建一个简单 “id” 主键,因此我们需要通过自己自定义迁移来规避这种行为

2.1K10

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

文章目录 一、模型类定义 二、模型类迁移 总结 ---- 一、模型类定义 在models.py 文件定义模型类,示例如下: from django.db import models # Create...2) 关于主键 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列。...若为True,则该字段会成为模型主键字段,默认值是False,一般作为AutoField选项使用 unique 如果为True, 这个字段在表必须有唯一值,默认值是False null是数据库范畴概念...,blank是表单验证范畴 6) 外键 在设置外键,需要通过on_delete选项指明主表删除数据,对于外键引用表数据如何处理,在django.db.models包含了可选常量: CASCADE...异常 二、模型类迁移 将模型类同步到数据库

1.4K20

django 1.8 官方文档翻译: 2-5-6 多数据库

每当一个查询需要知道使用哪一个数据库,它将调用主路由,并提供一个模型和一个Hint (可选)。Django 然后依次测试每个路由直至找到一个数据库建议。...如果myapp任何一个模型包含与其它 数据库之外模型关联,这个例子将不能工作。跨数据关联引入引用完整性问题,Django目前还无法处理。...当保存在statement 2发生,p已经具有一个主键Django 将尝试在新数据库上使用该主键。...然而,如果p 主键在second数据库上已经在使用second 数据库已经存在对象将在p保存被覆盖。 你可以用两种方法避免这种情况。首先,你可以清除实例主键。...因为跨数据库关联是不可能,这对你如何在数据库之间划分这些模型带来一些限制: contenttypes.ContentType、sessions.Session和sites.Site 可以存储在分开存储在不同数据库

1.5K20

Django 2.1.7 模型类 - 字段类型

在官方文档,关于字段类型描述非常多,如下: 模型字段定义属性 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列...默认创建主键列属性为id,可以使用pk代替,pk全拼为primary key。 注意:pk是主键别名,若主键名为id2,那么pk是id2别名。...定义属性需要指定字段类型,通过字段类型参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField...primary_key:若为True,则该字段会成为模型主键字段,默认值是False,一般作为AutoField选项使用。...is_delete = models.BooleanField(default=False) # 逻辑删除 添加了模型字段类型之后,执行数据迁移进行变更。

1.2K10

Django 2.1.7 模型类 - 字段类型

在官方文档,关于字段类型描述非常多,如下: 模型字段定义属性 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列...默认创建主键列属性为id,可以使用pk代替,pk全拼为primary key。 注意:pk是主键别名,若主键名为id2,那么pk是id2别名。...定义属性需要指定字段类型,通过字段类型参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField:...primary_key:若为True,则该字段会成为模型主键字段,默认值是False,一般作为AutoField选项使用。...is_delete = models.BooleanField(default=False) # 逻辑删除 添加了模型字段类型之后,执行数据迁移进行变更。

1.7K30

Python Django框架笔记(五):模型

在这个模式, Model 代表数据存取层,View 代表是系统中选择显示什么和怎么显示部分,Controller 指的是系统根据用户输入并视需要访问模型,以决定使用哪个视图那部分。...对于Django,可以理解为遵循MVC模式: M,数据存取部分,由django数据库层处理,即模型。 V,选择显示哪些数据要显示以及怎样显示部分,由视图和模板处理。...在 MTV开发模式: M代表模型(Model),即数据存取层。 该层处理与数据相关所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间关系等。...该层处理与表现相关决定: 如何在页面或其他类型文档中进行显示。 V代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板相关逻辑。 你可以把它看作模型与模板之间桥梁。...两种诠释没有哪个更加正确一些。 重要是要理解底层概念。 (二)    定义模型 例如,现在有球队、球员、主教练、雇主 (因为django 建表时候会自动生成一个ID,除非另外指定。

2K60

Django新增数据

save()方法也被用来更新数据,如前所述,如果你在保存新对象时候指定了主键值,如果这个值在数据库已经存在,那么插入操作,就变成了更新操作。...Django 确保在你模型至少指定了一个默认 Manager。如果你没有添加自己 Manager,Django 会添加一个属性 objects,包含默认 Manager 实例。...如果添加自己 Manager 实例属性,则不会出现默认。 Manager 是一种接口,它赋予了 Django 模型操作数据库能力。...Django 应用每个模型拥有至少一个 Manager,就是默认objects. 以上这些描述来自Django官方文档。...,而且如果这个值已经存在于数据库,那么对 create() 调用就会以一个 IntegrityError 失败,因为主键必须是唯一

77630

Django】 开发:静态文件,应用和模型

' %}"> Django应用 - app 应用在Django项目中是一个独立业务模块,可以包含自己路由,视图,模板,模型 创建应用app 创建步骤 用 manage.py 子命令 startapp...迁移是 Django 同步您对模型所做更改(添加字段,删除模型等) 到您数据库模式方式 1.生成或更新迁移文件 ​ 将每个应用下 models.py 文件生成一个中间文件,并保存在 migrations...,表示该列为主键,如果指定一个字段为主键,则此数库表不会创建id字段 blank 设置为True,字段可以为空。...设置此字段在admin界面上显示名称。...CRUD操作) CRUD是指在做计算处理增加(Create)、读取查询(Read)、更新(Update)和删除(Delete) 管理器对象 每个继承自 models.Model 模型类,都会有一个

1.8K20
领券