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

django 1.8 官方文档翻译: 2-5-1 管理器 (初稿)

这是因为,管理器被设计用来封装对象集合管理的逻辑。由于抽象的对象中并没有一个集合,管理它们是毫无意义的。如果你写了应用在抽象模型上的功能,你应该把功能放到抽象模型的静态方法,或者类的方法中。...在整个这一节中,我们将那种由 Django 为你创建的管理器称之为 “自动管理器”,既有因为没有管理器而被 Django 自动添加的默认管理器, 也包括在访问关联模型时使用的临时管理器。...这表明无论自动管理器是否被创建,那些要使用特殊的管理器的模型仍要使用这个特殊的管理器类。...如果在模型中的默认 管理器(在这些情况中仅考虑默认管理器)中设置了这个属性,那么无论它是否需要被自动创建,Django 都会自动使用它。...你也不应该在模型中使用这个属性之后,在类上改变它。这是因为在模型类被创建时,这个属性值马上就会被处理,而且随后不会再读取这个属性值。

1.5K20

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

执行查询 一旦你建立好数据模型之后,django会自动生成一套数据库抽象的API,可以让你执行增删改查的操作。这篇文档阐述了如何使用这些API。关于所有模型检索选项的详细内容,请见数据模型参考。...获取对象 通过模型中的Manager构造一个QuertSet,来从你的数据库中获取对象。 QuerySet表示你数据库中取出来的一个对象的集合。...AttributeError: "Manager isn't accessible via Blog instances." 注意 管理器通常只可以通过模型类来访问,不可以通过模型实例来访问。...与 entry 相关联,Django 会认为它没有 name 属性,而不会因为不存在 author 抛出异常。...唯一的差虽就在于属性的命名: ManyToManyField 所在的 model (为了方便,我称之为源model A) 使用字段本身的名称来访问关联对象;而被关联的另一方则使用 A 的小写名称加上 ‘

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

    Django 1.10中文文档-第一个应用Part2-模型和管理站点

    我们将设置数据库,创建您的第一个模型,并快速介绍Django的自动生成的管理网站。 数据库设置 现在,编辑mysite/settings.py。...在这个投票应用中,我们将创建两个模型: Question和Choice。Question对象具有一个question_text(问题)属性和一个publish_date(发布时间)属性。...1 # 通过python的属性调用方式,访问模型字段的值 >>> q.question_text "What's new?"...>>> q = Question.objects.get(pk=1) # 显示所有与q对象有关系的choice集合,目前是空的,还没有任何关联对象。...Django admin管理站点介绍 为您的员工或客户生成管理网站用来添加,更改和删除内容是繁琐的工作,不需要太多的创造力。因此,Django完全自动创建模型的管理界面。

    3.2K60

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

    模型层的 QuerySet 章节 文档版本:1.11 Making queries 进行查询 一旦你创建了 数据表模型类,django 会自动给你一些数据库抽象API,让你可以创建、查询、更新、...,一个表模型类(class)即代表一张表,实例化出一个对象即代表一条数据记录 创建一个对象(一条数据记录) 在 django 中要想创建一个数据对象,只需要实例化他,传入这个表模型类的关键字参数,然后调用...='Bar') # 表模型类实例化会返回实例化好的对象 b.objects # 会报错 AttributeError: "Manager isn't accessible via Blog instances...记住这个 使用 .get() 和 .filter()[0] 有点不一样,如果没有满足条件的查询结果, .get() 会报一个 DoesNotExist 的错,这个报错是执行的表模型类的一个属性,所以,在上面的代码中...用 django 表模型类创建的表会自动加上 app 的前缀(显然这里的 app 叫 blog) lookuptype 查找类型分类整理 此部分为伪代码,仅演示这些字段查询的功能用法以及对应 SQL

    3.4K20

    Django之ORM对数据库操作

    ): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。... count(): 返回数据库中匹配查询(QuerySet)的对象数量。...方法 create() 创建一个新的对象,保存对象,并将它添加到关联对象集之中,返回新创建的对象。...键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。...所有提供给查询函数的参数(关键字参数或Q 对象)都将"AND”在一起。但是,如果出现Q 对象,它必须位于所有关键字参数的前面。 例如:查询出版年份是2017或2018,书名中带物语的所有书。

    1.7K110

    完整的 Django 零基础教程|初学者指南 - 第 4 部分 转自:维托尔·弗雷塔斯

    这里 Django 创建了一个新对象,因为Board 实例没有id 。...第一次保存后,Django会自动设置id: board.id 1 您可以将其余字段作为 Python 属性访问: board.name 'Django' board.description 'This...要更新一个值,我们可以这样做: board.description = 'Django discussion board.' board.save() 每个 Django 模型都有一个特殊的属性;我们称之为模型管理器...基本上,它是来自数据库的对象列表。我们可以看到我们有两个对象,但是我们只能读取Board object 。那是因为我们还没有 __str__在Board 模型中定义方法。...大写的Board 指的是类,小写的board 指的是Board 模型类的一个实例(或对象): Operation 代码示例 创建对象而不保存 board = Board() 保存对象(创建或更新) board.save

    1.1K20

    Django内置的通用类视图及实例

    属性: model: 指定模型 tempalta_name:模板文件 queryset:指定一个经过过滤的对象列表,将取代model提供的值 context_object_name: 指定要在上下文中使用的变量的名称...方法: get_queryset():获取此视图的对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作的关键点,在于当类视图被调用时...属性: model: 视图要显示的模型 queryset: 表示对象的一个查询集.queryset的值优先于model的值. template_name: 字符串表示的模板名称. context_object_name...方法: get_queryset():返回用来获取本视图显示对象的queryset.如果设置了queryset属性,get_queryset()默认返回它的值. get_object(queryset=...显示用于编辑现有对象的表单的视图,重新显示具有验证错误信息的视图,并且保存对象.这里使用从对象模型自动生成的表单(除非手动制定表单类).

    4.4K40

    Django之QuerySet详解

    每个字典表示一个对象,键对应于模型对象的属性名称。...[{'author': 1, 'entries': 33}]> 注意:如果你有一个字段foo是一个ForeignKey,默认的foo_id参数返回的字典中将有一个叫做foo 的键,因为这是保存实际值的那个隐藏的模型属性的名称...方法名 解释 get() 获取单个对象 create() 创建对象,无需save() get_or_create() 查询对象,如果没有找到就新建对象 update_or_create...() 更新对象,如果没有找到就创建对象 bulk_create() 批量创建对象 count() 统计对象的个数 in_bulk() 根据主键值的列表,批量返回对象 iterator...11. first() 返回结果集的第一个对象, 当没有找到时返回None。如果QuerySet没有设置排序,则将会自动按主键进行排序。

    3.7K20

    Django篇(二)

    常见模型字段属性 模型属性命名: 1、不能是python保留关键字 2、不允许出现联系的下划线 字段类型 第一篇文章中我们仅仅了解了几个。 接下来我们重新了解一下有什么其他模型。...不指定时,Django会自动生成字段为id的自增长字段。...~: 查询id不等于2的人 student.objects.filter(~Q(id=2)) F对象 多条件可以解决,那属性之间的比较怎么解决?...查询集.exists(),有返回True,没有返回False 模型类关系 1、一对多关系 例如一个班级对应多个人 我们需要用ForeignKey()来关联我们的模型。...同样的查询方式。 管理器 什么是管理器? 我们每次查询的时候都会是模型.objects.xxx。 这个objects是Django帮我们自动生成的管理器对象。通过objects来帮助我们查询信息。

    1.8K20

    Django内置的通用类视图CBV及示例

    属性: model: 指定模型 tempalta_name:模板文件 queryset:指定一个经过过滤的对象列表,将取代model提供的值 context_object_name: 指定要在上下文中使用的变量的名称...属性: model: 视图要显示的模型 queryset: 表示对象的一个查询集.queryset的值优先于model的值. template_name: 字符串表示的模板名称. context_object_name...方法: get_queryset():返回用来获取本视图显示对象的queryset.如果设置了queryset属性,get_queryset()默认返回它的值. get_object(queryset=...显示用于创建对象的表单的视图,通过验证错误信息重新显示视图,并且保存对象....显示用于编辑现有对象的表单的视图,重新显示具有验证错误信息的视图,并且保存对象.这里使用从对象模型自动生成的表单(除非手动制定表单类).

    4.5K10

    Django项目之Elasticsearch搜索引擎

    ,自动生成索引 HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor' 4)创建索引类 指明让搜索引擎对哪些字段建立索引...=True 表示通过模板来指明索引值由哪些模型类字段组成 5)在templates目录中创建text字段使用的模板文件 在templates/search/indexes/goods/sku_text.txt.../文件名.txt 通过sku的name、caption、id来进行关键字索引查询 6)手动生成初始索引 python manage.py rebuild_index 7)创建序列化器 在goods...base_name='skus_search') urlpatterns += router.urls bug说明: 如果在配置完haystack并启动程序后,出现如下异常,是因为drf-haystack还没有适配最新版本的...() except (AttributeError, TypeError): return len(queryset)

    1.4K20

    Django之ORM数据库

    数据库下的db.sqlite3则是项目自动创建 USER和PASSWORD分别是数据库的用户名和密码。...5.2  ORM表模型 表(模型)的创建: 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名。...作者详细模型:把作者的详情放到详情表,包含性别,email地址和出生日期,作者详情模型和作者模型之间是一对一的关系(one-to-one)(类似于每个人和他的身份证之间的关系),在大多数情况下我们没有必要将他们拆分成两张表...注意: 第二种方式修改不能用get的原因是:update是QuerySet对象的方法,get返回的是一个model对象,它没有update方法,而filter返回的是一个QuerySet对象(filter...注意,这里因为update返回的是一个整形,所以没法用query属性;对于每次创建一个对象,想显示对应的raw sql,需要在settings加上日志记录部分: LOGGING = { 'version

    3.1K10

    Django项目知识点(四)

    随便新建一个Django项目,默认会自动为我们创建一个/project_name/urls.py文件,并且自动包含下面的内容,这就是项目的根URL: 配置media媒体文件 settings.py #...属性来提供数据操作大的接口。...values() 返回包含对象具体值的字典的QuerySet values_list() 与values()类似,只是返回的是元组而不是字典。...这样就可以引用模型字段值并使用它们执行数据库操作,而无需实际将它们从数据库中拉出到Python内存中 说白了就是我从数据库拿东西,但是有些需要的字段没有,要通过绑定的外键的app的model拿。...banner模型外键绑定news中的title字段,拿出来它叫news__title,我要给它换个名字叫news_title,这就是注释。

    2.2K30

    【愚公系列】2022年01月 Python教学课程 42-Django框架之ORM中查询详解

    1的书籍信息 由一到多的访问语法: 一对应的模型类对象.多对应的模型类名小写_set 例: >>> book = BookInfo.objects.get(id=1) >>> book.peopleinfo_set.all...梅超风>]> 由多到一的访问语法: 多对应的模型类对象.多对应的模型类中的关系类属性名 例: person = PeopleInfo.objects.get(id=1) person.book 访问一对应的模型类关联对象的id语法: 多对应的模型类对象.关联类属性_id 例: >>> person = PeopleInfo.objects.get(id=1) >>> person.book_id...1 关联过滤查询 由多模型类条件查询一模型类数据: 语法如下: 关联模型类名小写__属性名__条件运算符=值 注意:如果没有"__运算符"部分,表示等于。...: 语法如下: 一模型类关联属性名__一模型类属性名__条件运算符=值 注意:如果没有"__运算符"部分,表示等于。

    2.4K40

    03ORM基础操作-生命周期-路由系统

    ---> 创建数据库 或者是检查自己 是否有当前数据库​# 【4】除了可以使用 navicat 可视化软件打开数据库​​# 【五】创建模型表和生成数据库# 【1】要在创建的 app 下的 models.py...) # 1 '''​ # (2)方式二:模型表.objects.get(属性名=属性值) 有就拿到具体的对象 没有 则直接报错 只能筛选一个对象对于1个就报错​ # 按照指定条件过滤数据...# 返回指定条件的数据 # 返回值是一个 具体的对象 # 只能获取1个 超过1个就报错 没有符合条件的数据也会报错 # 模型表.objects.filter() #...返回过滤后的数据 符合条件的数据 # 返回值是一个 QuerySet 对象 是一个列表 # 没有符合条件的数据就是空的 QuerySet 对象 是一个空列表 # 符合条件的多个数据...# 返回值是一个 QuerySet 对象 是一个列表​ # 【3】删除数据 # (1)方式一: 模型表.objects.filter(属性名=属性值).delete()​

    25900

    Django MVT之M

    使用时,需引入django.db.models包,常用字段类型如下: 字段类型 描述 AutoField 根据实际ID自动增长的整数字段,通常不需要直接使用,Django会自动生成ID字段并且自动增长。...2) 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false。...all 返回模型类对应表格中的所有数据。 QuerySet对象 aggregate 无参数 filter 返回表中满足条件的数据。 QuerySet对象 参数为查询条件。...即id__exact=1可以简写为id=1。 F对象 用于模型类A属性与B属性进行比较,使用之前需要导入F类。...由一类对象查询多类: # 查询所用数据 一类对象.多类名小写_set.all() 由多类对象查询一类: # 查询多类对象对应的一类 多类对象.关联属性 # 查询多类对象对应的一类特定属性,比如id

    1.5K10

    Django的Manager和QuerySet

    Django的Manager和QuerySet 要从数据库检索对象,需要通过模型类的 Manager 构建一个 QuerySet。...models本身没有什么需要多说的,Django 使用了一套直观的系统:一个模型类代表一张数据表,一个模型类的实例代表数据库表中的一行记录。 模型类的save方法可以插入,更新,删除数据。...要为指定类重命名 Manager,在该模型中定义一个类型为 models.Manager 的属性。...QuerySet 类具有两个可用于自省的公开属性: 可以返回QuerySet对象的QuerySet方法 前文所述的看起来做了3次SQL查询,实际上只有一次。...下面介绍一下常用的可以返回QuerySet对象的QuerySet方法 不能返回QuerySet对象的QuerySet方法 下面介绍一些常用的不能返回QuerySet对象的QuerySet方法。

    1.5K30
    领券