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

Django经理在模型中设置了_set

在Django框架中,_set是一个反向查找属性,用于获取与模型中的ForeignKey字段相关联的所有对象。

例如,假设我们有两个模型:AuthorBookBook模型中有一个ForeignKey字段author,它指向Author模型。在Author模型中,我们可以使用book_set来获取与该作者相关联的所有书籍。

代码语言:python
代码运行次数:0
复制
class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

在这个例子中,我们可以使用author.book_set.all()来获取与该作者相关联的所有书籍。

需要注意的是,Django会自动为ForeignKey字段创建一个反向查找属性,因此我们不需要在模型中显式地定义它。在上面的例子中,Django会自动为Author模型创建一个book_set属性,因为Book模型中有一个ForeignKey字段author

如果我们想要自定义反向查找属性的名称,可以使用related_name参数。例如,我们可以将上面的例子修改为:

代码语言:python
代码运行次数:0
复制
class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='books')

在这个例子中,我们可以使用author.books.all()来获取与该作者相关联的所有书籍。

总之,_set是Django中用于反向查找相关对象的一种方式,可以帮助我们更方便地管理和查询数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

脚本单独使用django的ORM模型详解

有时候测试django中一些模块时,不想重新跑一整个django项目,只想跑单个文件,正好写在if __name__ == ‘__main__’: 这样也不会打扰到正常的代码逻辑 方法 正常方法 大家都知道的方法就是...’python manage.py shell’,当然我知道这可能不是你需要的; 更好用的方法 脚本import模型前调用下面几行即可: import os, sys BASE_DIR = os.path.dirname...))) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dj_tasks.settings") # 你的django的settings文件 接下来再调用...导入models的时候,还没有django对应的环境下导入 这里导入的顺序很重要 import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE...以上这篇脚本单独使用django的ORM模型详解就是小编分享给大家的全部内容,希望能给大家一个参考。

4.9K10

laravel实现ORM模型使用第二个数据库设置

DB类连接第二个数据库的方法 laravel如果使用DB类进行第二个数据库的链接我们只需要设置config/database.php添加一个数据库设置,如: 'mysql_branch' = [...'root', 'password' = 'root', 'charset' = 'utf8mb4', 'collation' = 'utf8mb4_unicode_ci', ], 链接的时候加上一个函数...DB::connection(‘mysql_branch’)- table(‘table’)- get()` 这样就可以 使用ORM时候连接第二个数据库 model类添加私有属性如下: class...//取消时间戳 public $timestamps = false; //链接外部数据库 protected $connection = 'mysql_branch'; } 这样就可以!...以上这篇laravel实现ORM模型使用第二个数据库设置就是小编分享给大家的全部内容,希望能给大家一个参考。

1.8K41
  • 使用Django、Prometheus和Kubernetes定制应用指标

    我认为你已经理解了重点。 设置Django应用程序 除了明显的依赖(pip install Django)之外,我们还需要为宠物项目(译者注:demo)添加一些额外的包。...接下来,我们将运行Django管理命令来启动项目,更新我们的设置来使用Prometheus客户端,并将Prometheus的URL添加到URL配置。...Prometheus urls 现在我们有一个Django项目以及相应的设置,可以为 django-prometheus添加需要的配置项。...---- 添加Prometheus指标 由于django-prometheus提供开箱即用功能,我们可以立即追踪一些基本的模型操作,比如插入和删除。...显示散步距离和创建散步的指标 定义的指标此时已经可以prometheus里查找到了 至此,我们已经代码添加了自定义指标,整合应用以追踪指标,并验证这些指标已在/metrics 上更新并可用。

    1.3K20

    【Git】每天1分钟系列——Git项目分组开发

    项目经理创建完成仓库后,接下来项目组成员就要进行开发工作了 以下操作由每个组员独自完成 添加ssh账户 这一步是组员ubuntu中生成ssh密钥,然后交给项目经理添加到github ubuntu的命令行...生成git密钥 删除~/.ssh目录,这里存储旧的密钥 rm -r .ssh 运行如下命令生成密钥 “图标2”处可以填写保存密钥的目录 “图标3”处可以填写密码,如果填写,一般为项目的名称...克隆出来的目录下,隐藏目录.git存储服务器、分支、文件变更等信息 同步分支 以自己的姓名创建分支,如果此分支已经存在可以添加数字后缀,具体要与项目经理商量 git checkout -b zhujiao...添加 按照工作分配,需要创建df_user模块,此时文件位于工作区 python manage.py startapp df_user ide编辑df_user/models.py文件,创建模型类UserInfo...,仓库区记录的各版本是可以查看并回退的,但是暂存区的版本一旦提交就再也没有 暂存区与仓库区交互的方式及命令如下 ?

    88540

    Python进阶35-Django Auth组件

    -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。...很麻烦,所以Django帮我们做了一件事,settings文件,修改即可。.../', views.set_pwd), url(r'^auth_1/', views.auth_1), ]   该方法,主要不是视图使用,是模板中使用。...---- 封号和后台管理 is_staff : 用户是否拥有网站的管理权限. is_active : 是否允许用户登录, 设置为 False,可以不删除用户的前提下禁止用户登录。...写法如下: # 引用Django自带的User表,继承使用时需要设置 AUTH_USER_MODEL = "app01.UserInfo" 再次注意: 一旦我们指定新的认证系统所使用的表,我们就需要重新在数据库创建该表

    55120

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

    我们将设置数据库,创建您的第一个模型,并快速介绍Django的自动生成的管理网站。 数据库设置 现在,编辑mysite/settings.py。...这不仅在数据库模式中使用,而且验证中使用。 Field还可以有各种可选参数;在上例,我们将votes的默认值设置为0。 最后,使用ForeignKey定义关系。...这告诉Django每个选择是与单个问题相关。 Django支持所有常见的数据库关系:多对一,多对多和一对一。 激活模型 上面那段简短的模型代码给Django很多信息。...Question.objects.all() # 新建一个Question # 默认设置文件启用对时区的支持, Django推荐使用timezone.now()代替python...def __str__(self): return self.choice_text 模型添加__str __()方法非常重要,不仅仅是为了方便您处理交互式提示时,而且Django

    2.3K60

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

    has_usable_password() 如果设置set_unusable_password(),返回False。 get_session_auth_hash() 返回密码字段的HMAC。...这是一个抽象的类,可以为自定义用户模型的类的层次结构包含它。它提供所有 Django 权限类必须的方法和字段。...Django 允许通过修改 settings.py 文件的 AUTH_USER_MODEL 设置覆盖默认的 User 模型,其值引用一个自定义的模型。...# AUTH_USER_MODEL 这个属性是 django 内置的,会主动到这个文件查找这个属性, # 如果找到了,那么就会使用这个属性指定的模型来作为 User 对象 # AUTH_USER_MODEL...这个属性是一个字符串,规则是 “appname.Modelname” # app 下的哪个模型 # 如果设置 AUTH_USER_MODEL,那么项目的 makemigrations 以及 migrate

    93220

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

    字段属性primary_key用于设置主键,max_length用来设置字段的最大长度,db_column用来设置数据库与字段对应的列,verbose_name则设置Django后台管理系统该字段显示的名称...一”的一方查询“多”的一方),反向查询属性默认的名字是类名小写_set(如上面例子的emp_set),当然也可以创建模型时通过ForeingKey的related_name属性指定反向查询属性的名字...NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段的选项,各元组的第一个值是设置模型上的值,第二值是人类可读的值 db_column...SET_NULL:把外键设置为null,当null属性被设置为True时才能这么做。 SET_DEFAULT:把外键设置为默认值,提供默认值才能这么做。...managed 设置为True时,Django迁移创建数据表并在执行flush管理命令时把表移除 order_with_respect_to 标记对象为可排序的 ordering 对象的默认排序 permissions

    2.3K30

    Django 2.1.7 模型 - 使用mysql数据库连接访问

    上一篇Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据讲述了如何使用sqlite3作为数据库,执行模型查询数据,并返回渲染页面。 本篇章开始将继续详细讲述模型这块的运用。...参考文献 官方文档 mysql数据库创建数据库实例 Django配置连接mysql之前,第一个就是需要在mysql创建好数据库实例,表的话可以使用迁移的手段创建。...(0.00 sec) mysql> 好了,下一步就是Django项目中配置访问mysql服务。...# 设置访问ip地址 'PORT': 3306, # 设置访问端口号 } } 尝试启动django的开发服务器,测试是否会报错 可以看到提示ModuleNotFoundError...,利用这两个模型,下一步来执行一下数据迁移,自动mysql创建数据表。

    1.2K10

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

    二、模型的定义 模型可以定义储存数据的字段和值,比如我们进行表单提交的时候,一些注册信息就可以利用模型来进行管理,然后统一提交到数据库。简单来说,模型是与数据库有关的操作集合。...与之关联的值设置为指定值,设置:models.SET(值) 2....与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象) related_name=None # 反向操作时,使用的字段名,用于代替表名_set related_query_name...,可以将其它字段放在中介模型,源模型的字段使用through参数指向中介模型。...on_delete=None # 当删除关联表的数据时,当前表与其关联的行的行为 五、管理员登陆 为了能让大家提前看到django的数据操作,django内置一款非常到位的系统管理员登陆设计系统

    2.1K00

    django_mysql_配置

    自己数据创建一个djangi_demo create database django_demo default charset=utf8; ---- 定义模型类 1....创建一个新的应用,为booktest,models.py 文件定义模型类,然后去setting注册应用 python manage.py startapp booktest ?...2) django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...null是数据库范畴的概念,blank是表单验证范畴的 5) 外键 一般我用CASCADE 设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,django.db.models...设置为NULL,仅在该字段null=True允许为null时可用 SET_DEFAULT 设置为默认值,仅在该字段设置默认值时可用 SET() 设置为特定值或者调用特定方法,如 from

    1.6K10

    django2.0入门教程第二节

    继上篇 django2.0入门教程第一节,生成了投票应用,接下来讲解如何使用django模型与数据库进行交互 数据库设置 打开mysite/settings.py,可看到默认情况下,django使用的是...OK 以上命令将django激活的应用所需的数据表创建好了 创建模型 django模型(models)本质上就是对数据表的定义。...django是不需要直接与数据库交互的,所有对数据库的操作都可以映射为模型类的操作,有一个数据表,就有一个模型类与之对应 polls/models.py #_*_coding:utf8_*_ from...,并标识这些字段的类型 激活模型 mysite/settings.py INSTALLED_APPS = [ 'polls.apps.PollsConfig', # ... ] 生成迁移...此外,我们还可以models添加自定义方法: import datetime from django.db import models from django.utils import timezone

    71130

    django 1.8 官方文档翻译: 1-2-1 编写你的第一个Django应用,第1部分

    Django 编写一个有数据库支持的 Web 应用的第一步就是定义你的模型 – 从本质上讲就是数据库设计及其附加的元数据。 哲理 模型是有关你数据的唯一且明确的数据源。...Django 遵循 DRY 原则 。目标是为了只一个地方定义你的数据模型就可从中自动获取数据。 在这简单的投票应用,我们将创建两个模型: Poll 和 Choice。...每个模型都由继承自 django.db.models.Model 子类的类来描述。 每个模型都有一些类变量,每一个类变量都代表一个数据库字段。...若字段未提供该参数,Django 将使用符合机器习惯的名字。本例,我们仅定义一个符合人类习惯的字段名 Poll.pub_date 。对于模型的其他字段,机器名称就已经足够替代人类名称。...激活模型 刚才那点模型代码提供给 Django 大量信息。有这些 Django 就可以做: 为该应用创建对应的数据库架构 (CREATE TABLE statements) 。

    99020

    django 1.8 官方文档翻译: 2-1-3 元选项 (初稿)

    网站:http://python.usyiyi.cn/django/index.html 模型元选项 这篇文档阐述所有可用的元选项,你可以在你模型的Meta类设置他们。...如果你的模型定义默认的 models.py 之外(比如,你现在用的模型 myapp.models 子模块当中),你必须告诉 Django模型属于哪个应用: app_label = 'myapp...' Django 1.7新增: 一个应用,定义models 模块以外的模型,不再需要app_label。...default_related_name Options.default_related_name Django 1.8新增: 这个名字会默认被用于一个关联对象到当前对象的关系。默认为 _set。...你可以自定义这个列表,比如,如果你的应用不需要默认权限的任何一项,可以把它设置成空列表。模型被migrate命令创建之前,这个属性必须被指定,以防一些遗漏的属性被创建。

    82030
    领券