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

Django之模型---ORM简介

共有下列额外的可选参数: Argument 描述 auto_now 当对象保存时,自动将该字段的值设置为当前时间.通常用于表示 "last-modified...出于习惯你一定很想使用 Django 提供的 get__url 函数.举例来说,如果你的 ImageField 叫作 mug_shot, 你就可以模板以...# 以前的 Django 版本,没有任何办法改变50 这个长度. 这暗示了 db_index=True....(1)null 如果为True,Django 将用NULL 来在数据库存储空值。 默认值是 False. (1)blank 如果为True,该字段允许填。默认为False。...(4)unique 如果该值设置为 True, 这个数据字段的值整张表必须是唯一的 (5)choices 由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。

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

Django 模型自定义Manager和模型方法

添加额外的manager 增加额外的manager是为模块添加表级功能的首选办法.(至于行级功能,也就是只作用于模型实例对象的函数,则通过自定义模型方法实现)....Book.objects.all()将返回数据库的所有书籍,Book.dahl_objects.all()返回作者是Roald Dahl的书籍.注意我们明确的将objects设置为默认Manger...kwargs) #Call the "real" save() method 记住,继承超类的方法非常重要,即super(Blog, self).save(*args, **kwargs),它确保该对象仍被保存到数据库...上面的示例,clean()引发的ValidationError异常通过一个字符串实例化,所以它将被保存在一个特殊的错误字典,键为NON_FIELD_ERRORS.这个键用于整个模型出现的错误不是一个特定字段穿线的错误...ValidationError,其中字典的键为字段名.我们可以更新前面的例子,引发pub_date字段上的异常: class Article(models.Model): ...

2.7K20

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

如果你一个已存在的对象上面更改主键的值并且保存,一个新的对象将会在原有对象之外创建出来。...所以,model 方法应该作用于 model 类的实例(也就是说,实例对象上使用 model 方法,不是类上直接使用)。 最好是一个地方(就是 model )保存商业逻辑。... Django 中有三种继承方式: 通常,你只是想用父 model 来保存那些你不想在子 model 重复录入的信息,父类并不单独使用。...最后,如果你只想在 model 修改 Python-level 级的行为,涉及字段改变。 代理 model (Proxy models) 适用于这种场合。...CommonInfo model 不能做为普通的 Django model 使用,因为它是一个抽象基类。他即生成数据表,也没有 manager ,更不能直接被实例化和保存

3.1K30

05.Django基础五之django模型层(一)单表操作

这些参数文档中有详细定义,这里我们简单介绍一些最常用的: 更多字段: ''' CharField 字符串字段, 用于较短的字符串....# 以前的 Django 版本,没有任何办法改变50 这个长度. 这暗示了 db_index=True....(1)blank 如果为True,该字段允许填。默认为False。 要注意,这与 null 不同。null纯粹是数据库范畴的, blank 是数据验证范畴的。...(4)unique 如果该值设置为 True, 这个数据字段的值整张表必须是唯一的 (5)choices 由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。...四、删除表纪录     delete()方法的调用者可以是一个model对象,也可以是一个queryset集合。     删除方法就是 delete()。它运行时立即删除对象返回任何值。

2.9K10

Django-官网查询部分翻译(1.11版本文档)-QuerySet-字段查找-06

目录 Making queries 进行查询 创建一个对象(一条数据记录) 保存修改的表对象 保存外键字段或多对多字段(ForeignKey or ManyToManyField fields) Retrieving...django(ORM),数据库与 python 对象的映射关系十分形象,一个表模型类(class)即代表一张表,实例化出一个对象即代表一条数据记录 创建一个对象(一条数据记录) django...要想创建一个数据对象,只需要实例化他,传入这个表模型类的关键字参数,然后调用 .save() 方法把这个对象保存到数据库即可 from blog.models import Blog b = Blog...!其实它执行了一次,执行最后一行 print(q) 的时候执行了数据库操作。...如果 Entry 对应的表没有任何对象符合 主键 是 1,那么 django 将会报错:Entry.DoesNotExist。

2.9K20

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

,主路由配置文件(urls.py)可以处理用户具体路由,主路由配置文件的可以做请求的分发(分布式请求处理)。...通过简单的配置就可以轻松更换数据库, 不需要修改代码. ORM 缺点 对于复杂业务,使用成本较高 根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 映射过程中有性能损失....,表示为该列增加索引 unique 如果设置为True,表示该字段在数据库的值必须是唯一(不能重复出现的) db_column 指定列的名称,如果指定的话则采用属性名作为列名 verbose_name...设置此字段admin界面上的显示名称。....) # objects 是管理器对象 创建数据对象 Django 使用一种直观的方式把数据库表的数据表示成Python 对象 创建数据每一条记录就是创建一个数据对象 MyModel.objects.create

1.8K20

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

如果你使用数据库已经存在的主键值创建一个新的对象Django 将假设你正在修改这个已存在的记录不是创建一个新的记录。...它在数据库删除这个对象;其Python 实例仍将存在并持有各个字段的数据。 更多细节,包括如何批量删除对象,请参见删除对象。 如果你想自定义删除的行为,你可以覆盖delete() 方法。...Django 许多地方都使用unicode(obj)(或者相关的函数 str(obj))。最明显的是Django 的Admin 站点显示一个对象和在模板插入对象的值的时候。...__str__() __str__() 方法每当你对一个对象调用str() 时调用。Python 3 Django 许多地方使用str(obj)。...如果实例的主键还没有值,将引发一个TypeError(否则,__hash__ 方法实例保存的前后将返回不同的值,改变一个实例的__hash__ 值Python 是禁止的)。

1.9K10

teprunner测试平台定时任务这次终于稳了

保存时,给请求添加上新的这3个参数。...INSTALLED_APPS添加django_apscheduler。 接着迁移数据库,创建两张任务表,一张任务明细表,一张任务执行情况表: python manage.py migrate ?...创建BackgroundScheduler的对象实例,Background指的是在后台运行。并添加DjangoJobStore,把任务通过Django保存到数据库。 ?...MySQL默认8小时会把连接断掉,于是当Django拿着已经被MySQL断开的连接对象去请求MySQL,就报错了。 当我本地安装了MySQL后,重启MySQL就能复现这个问题。...我给django-apscheduler写了个猴子补丁,实现第二个解决办法,用完就断开连接: ? 并且通过issue方式,告诉了它的作者: ? 这开启了我GitHub上英文交流技术的大门。

1.5K20

django filter过滤器实现显示某个类型指定字段不同值方式

help_text 表单形成输入提示内容 primary_key 主键,设置为 True ,该字段将启用为主键。...CharField可变长字符串字段 max_length 有最大输入选项为必须设置的选项 DateField日期字段 auto_now:每一次保存对象时,Django 都会自动将该字段的值设置为当前时间...要注意使用的是当前日期,并非默认值,所以 不能通过重写默认值的办法来改变保存时间。...auto_now_add:第一次创建对象时,Django 自动将该字段的值设置为当前时间,一般用来表示对象创建时间。...(name__icontains=”abc”)#名称包含”abc”,且abc区分大小写 Person.objects.filter(name__regex=”^abc”)# 正则表达式查询 Person.objects.filter

3K60

django 1.8 官方文档翻译: 2-2-1 执行查询

如果你想只用一条语句创建并保存一个对象,使用create()方法。 保存对象的改动 调用save()方法,来保存已经存在于数据库对象的改动。...保存ForeignKey和ManyToManyField字段 更新ForeignKey字段的方式和保存普通字段相同–只是简单地把一个类型正确的对象赋值到字段。...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以查询引用字段,来比较同一个 model 实例两个不同字段的值。...它运行时立即删除对象返回任何值。例如: e.delete() 你也可以一次性删除多个对象。每个 QuerySet 都有一个 delete() 方法,它一次性删除 QuerySet 中所有的对象。...,QuerySet 的 delete() 方法都使用一条 SQL 语句一次性删除所有对象并不是分别删除每个对象

4.3K20

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

这些参数参考中有详细定义,这里我们简单介绍一些最常用的: null 如果为True,Django 将用NULL 来在数据库存储空值。...详见自增主键字段。 主键字段是只读的。如果你一个已存在的对象上面更改主键的值并且保存,一个新的对象将会在原有对象之外创建出来。...以前的版本,OneToOneField 字段会自动变成模型 的主键。不过现在已经这么做了(不过要是你愿意的话,你仍可以传递 primary_key参数来创建主键字段)。...你唯一需要作出的决定就是你是想让父模型具有它们自己的数据库表,还是让父模型持有一些共同的信息而这些信息只有子模型才能看到。 Django 中有3风格的继承。...查询集始终返回请求的模型 也就是说,没有办法DJango查询Person对象时返回MyPerson对象。Person 对象的查询集会返回相同类型的对象

4.9K20

​第 07 篇:创作后台开启,请开始你的表演!

如下图所示: 其次是新增 post 页面的表单,各个字段的 label 由定义 Post 类的 Field 名转换而来,比如 Post 模型定义了 title 字段,则对应表单的 label 就是...文章列表显示更加详细的信息 admin 后台的文章列表页面,我们看到了文章的标题,但是我们希望它显示更加详细的信息,这需要我们来定制 admin 了, admin.py 添加如下代码: blog...此前我们 blog/admin.py 定义了一个 PostAdmin 来配置 Post admin 后台的一些展现形式。list_display 属性控制 Post 列表页展示的字段。...发布文章的过程实际上是一个 HTTP 请求过程,此前提到,django 将 HTTP 请求封装在 HttpRequest 对象,然后将其作为第一个参数传给视图函数(这里我们没有看到新增文章的视图,因为...因为 timezone 模块的函数会自动帮我们处理时区,所以我们使用的是 django 为我们提供的 timezone 模块,不是 Python 提供的 datetime 模块来处理时间。

1.1K20

Django实战-信息资讯-重构 USER 模型

指定的字段是 telephone ,以及password 这个字段写也会让你输入 REQUIRED_FIELDS = ['username'] is_active 必须定义。...不保存 AbstractBaseUser 对象。如果没有给定密码,密码就会被设置成不使用,同用 set_unusable_password()。...不保存AbstractBaseUser 对象。 has_usable_password() 如果设置了set_unusable_password(),返回False。...这是一个抽象的类,可以为自定义用户模型的类的层次结构包含它。它提供所有 Django 权限类必须的方法和字段。...# AUTH_USER_MODEL 这个属性是 django 内置的,会主动到这个文件查找这个属性, # 如果找到了,那么就会使用这个属性指定的模型来作为 User 对象 # AUTH_USER_MODEL

90420

00x: Django models.Model详解

主键的字段是只读的。如果你改变了现有对象的主键的值然后保存了这个对象,一个新的对象就会和旧的对象并行创建。啥意思呢?...需要第一个参数为model类对象,所以如果要使用verbose_name,需要显式地声明: 一个惯例就是verbose_name的第一个字母一般写成大写的形式。...Many-to-many 举个例子,每个Pizza对象都有多个Topping对象多个Topping对象则可以多个Pizza饼上。...SQL的一些保留字如`join,where,select则是可以model的字段名称中使用的,因为Django每次SQL查询避免了可能发生的冲突。...get_absolute_url(): 该函数告诉Django如何计算一个对象的url。Django admin接口中使用该函数,需要的时候返回对象的url。

1.6K20

django 字段类型_access的数据库类型是

**注意:**模型中使用FileField或ImageField时,需要执行以下几个步骤: l settings.py定义MEDIA_ROOT为django设置存储上载文件的目录的完整路径(这些文件并未直接存储在数据库...在数据库创建的为varchar列,默认最大长度为100字符。 ImageField.height_field:每次保存模型实例时,模型字段的名称都会自动填充图像的高度。...(21) UUIDField 用于存储通用唯一标识符的字段。使用Python的 UUID类。PostgreSQL上使用时,它存储uuid数据类型,否则存储 char(32)。...如果需要在尚未定义的模型上创建关系,则可以使用模型的名称,不是模型对象本身。...Django会在DELETE CASCADE上模拟 SQL约束的行为,并删除包含ForeignKey的对象。 **DO_NOTHING:**采取行动。

3.8K30

Django 学习笔记之模型(下)

所以我们Python 处理 Unicode 对象的时候,你可以直接将它们混合使用和互相匹配不必去考虑编码细节。 2 创建对象 为了更加直观的操作数据库,我使用 Django 的 API 来讲解。...) aut = Author.objects.get(name='令狐冲') # 创建 Book 对象, 要注意添加 id 字段 book = Book(id=None,title='令狐传', publisher...因为上限从 0 开始可以忽略写,所以它等同于 [0:3]。查询出来结果没有包含上限的值,即下标为 3 的值。[:3] 查询下标为 0, 1 ,2 的数据。...代码如下: # views.py from django.http import HttpResponse from django.shortcuts import render from demo.models...例如将出版社按照名称来排序, # views.py from django.http import HttpResponse from django.shortcuts import render

64630
领券