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

如何在django中显示列值而不是模型的外部键列中的对象?

在Django中,如果你想显示一个模型的外部键列的值而不是对象本身,可以使用模板中的双下划线语法来访问相关对象的字段。

假设你有两个模型,一个是Author,另一个是BookBook模型有一个外部键字段author指向Author模型。如果你想在Django中显示Book模型中的author字段值而不是关联的Author对象,可以使用双下划线语法。

首先,在视图中获取Book对象的数据并传递给模板:

代码语言:txt
复制
from django.shortcuts import render
from .models import Book

def book_detail(request, book_id):
    book = Book.objects.get(id=book_id)
    return render(request, 'book_detail.html', {'book': book})

然后,在模板book_detail.html中使用双下划线语法来访问author字段的值:

代码语言:txt
复制
<h1>{{ book.title }}</h1>
<p>Author: {{ book.author.name }}</p>

在上面的例子中,book.author.name使用了双下划线语法来访问Book对象的author字段的name属性,从而显示作者的名称。

这样,你就可以在Django中显示外部键列的值而不是对象本身了。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供安全、高性能、可弹性伸缩的云服务器,适用于各种应用场景。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(COS):提供高可靠、高扩展、低成本的云端存储服务,适用于存储和管理各类非结构化数据。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):提供丰富的人工智能能力和服务,包括图像识别、语音识别、自然语言处理等,助力开发者构建智能化应用。详情请参考:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django ORM 查询表字段方法

中文意为对象-关系映射. 在MVC/MVT设计模式Model模块中都包括ORM 2.ORM优势 (1)只需要面向对象编程, 不需要面向数据库编写代码....下面看下Django ORM 查询表字段,详情如下: 场景: 有一个表某一,你需要获取到这一所有,你怎么操作?...QuerySet,内容是键值对构成为表列名,为对应每个。...但是我们想要是这一呀,这怎么是一个QuerySet,而且还包含了列名,或者是被包含在了元祖?...查看高阶用法,告诉你怎么获取一个list,: [‘测试feed’, ‘今天’, ‘第三个日程测试’, ‘第四个日程测试’, ‘第五个测试日程’] 到此这篇关于Django ORM 查询表字段文章就介绍到这了

11.8K10

如何使用Excel将某几列有标题显示到新

如果我们有好几列有内容,而我们希望在新中将有内容标题显示出来,那么我们怎么做呢? Excel - TEXTJOIN function 1....- - - - 4 - - - 在开始,我们曾经使用INDEX + MATCH方式,但是没有成功,一直是N/A https://superuser.com/questions/1300246/if-cell-contains-value-then-column-header...所以我们后来改为TEXTJOIN函数,他可以显示,也可以显示标题,还可以多个列有时候同时显示。...- - - 4 - - - 15 Year 5 - - - - 5 - - - =TEXTJOIN(", ",TRUE,IF(ISNUMBER(B2:I2),$B$1:$I$1,"")) 如果是想要显示...,则: =TEXTJOIN(", ",TRUE,IF(ISNUMBER(B2:I2),B2:I2,"")) 其中,ISNUMBER(B2:I2)是判断不是数字,可以根据情况改成是不是空白ISBLANK

11.3K40
  • DevExpress控件gridcontrol表格控件,如何在属性设置某一显示为图片(图片按钮)

    DevExpress控件gridcontrol表格控件,如何在属性设置某一显示为图片(图片按钮)?效果如下图: ? 通过属性设置,不用写代码。...由于此控件属性太多了,就连设置背景图片属性都有好几个地方可以设置。本人最近要移植别人开发项目,找了好久才发现这个属性位置。之前一直达不到这种效果。...然后点击Columns添加,点击所添加再按照如下步骤设置属性: 在属性中找到ColumnEdit,把ColumnEditTextEditStyle属性设置为HideTextEditor;  展开...ColumnEdit,把ColumnEditButtons展开,将其Kind属性设置为Glyph; 找到其中Buttons,展开,找到其中0-Glyph,展开,找到其中ImageOptions...,找到Image属性,即可设置图片,添加一个图片后,运行显示即可达到目的。

    6K50

    Django模型

    Django模型 Django模型定义在models.py文件模型是MVTM,也相当于MVCM。 在Django模型必须继承自Model类。...django会为表创建自动增长主键,每个模型只能有一个主键,如果使用选项设置某属性为主键django不会再创建自动增长主键。...默认创建主键属性为id,也可以使用pk,意为primary key. 字段名称不能出现双下划线,因为这是Django查询语法之一。...外这个东西,通常都是在业务逻辑层面来实现不是在数据库实现。但是通常大家学习数据库课程,都会有数据库设计范式,其中有个第三范式就是专指约束。在这里只是简单介绍一下。...choices参数就是从我们定义二元组(GENDER_CHOICES)获取值。二元组第一个会储存在数据库第二个将只会用于在表单显示

    1.9K20

    django_mysql_配置

    verbose_name_plural = verbose_name # 显示复数名称 def __str__(self): """定义每个数据对象显示信息...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

    Django3.2边学边记—Adimn站点管理

    创建模型管理类来管理某个模型在后台显示页面形式 ModelAdmin类可以控制不同模型在Admin界面展示方式,主要包括在列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法...控制显示Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...atitle.short_description='标题'   如果是更改模型字段显示标题,可以在定义模型字段时,设置verbose_name ,或者封装成方法,再对方法使用上面那个属性,模型字段不能直接使用那个属性...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括外字段(注意list_display是不能直接接收外字段),会将对应字段列出来,一般用于快速过滤有重复字段...,并返回所有包含这些词对象,不区分大小写(即 icontains 查找:不区分大小写包含匹配),其中每个词必须在 search_fields 至少有一个。

    1.3K30

    Django】 开发:数据库操作和后台管理

    F F('列名') 说明: 一个 F () 对象代表了一个 model 字段 F 对象通常是对数据库字段在不加载到内存情况下直接在数据库服务器端进行操作 示例 1 更新 Book...后台管理登录地址: http://127.0.0.1:8000/admin/ 注册自定义模型类 若要自己定义模型类也能在 后台管理界显示和管理,需要将自己类注册到后台管理界面 添加自己定义模型后台管理数据表...类型记录,不便于阅读和判断 在用户自定义模型可以重写 方法解决显示问题,: 在 自定义模型重写 str(self) 方法返回显示文字内容: class Book(models.Model...模型管理器类 ModelAdmin 实现高级管理功能 list_display 去控制哪些字段会显示在 Admin 修改列表页面。...(设置完成后需要立马更新同步数据库) 2. verbose_name = '单数名' - 给模型对象一个易于理解名称(单数),用于显示在/admin管理界面

    4.1K40

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

    文章目录 一、模型类定义 二、模型类迁移 总结 ---- 一、模型类定义 在models.py 文件定义模型类,示例如下: from django.db import models # Create...def __str__(self): """定义每个数据对象显示信息""" return self.name # 准备人物列表信息模型类 class PeopleInfo...2) 关于主键 django会为表创建自动增长主键,每个模型只能有一个主键,如果使用选项设置某属性为主键django不会再创建自动增长主键。...False default 默认 primary_key 若为True,则该字段会成为模型主键字段,默认是False,一般作为AutoField选项使用 unique 如果为True, 这个字段在表必须有唯一...,默认是False null是数据库范畴概念,blank是表单验证范畴 6) 外 在设置外时,需要通过on_delete选项指明主表删除数据时,对于外引用表数据如何处理,在django.db.models

    1.4K20

    后端框架学习-Django

    特点:低耦合 M模型层:主要用于对数据库层封装 V视图层:用于给用户展示结果(WHAT + HOW显示什么,怎么显示) C控制层:用于处理请求、获取数据、返回结果 Django:MTV模式 把MVC...verbose_name_plural = '复数名' Django对于数据库操作是惰性,尽量不对数据库进行积极修改,设置default将不参与表字段生成,只会参与实际插。...显示样式是按照models.py__str__方法显示。...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑)) 一对一查询 正向查询:从外对象 反向查询:从对象查外 调用反向属性查询到关联一方...这告诉浏览器该文档是CSV文件,不是HTML文件 响应为额外添加一个Content-Disposition标头,其中包含CSV文件名称,它将被浏览器用于开启”另存为”对话框。

    9.5K40

    Django model 层之Models与Mysql数据库小结

    如果设置了该选项,那么默认表单组件将变为一个select box,不是标准是text field,且将被限制从给定choice中选择choice。...如果修改某个已存在对象,主键,并保存该对象,会在旧对象基础上,重新构建一个对象。...SET_NULL 删除被参照表某条表记录,设置参照表,同待删除记录存在外关联记录为null。当且仅当设置了null=True选项时可用。...SET_DEFAULT 删除被参照表某条表记录,设置参照表,同待删除记录存在外关联记录为默认。必须为外设置默认。...SET() 删除被参照表某条表记录,设置参照表,同待删除记录存在外关联关系记录为传递给SET()参数值,如果传递给SET()参数值是可调用对象,则设置为调用可调用对象获取结果。

    2.2K20

    Sentry 开发者贡献指南 - 数据库迁移

    过滤器 如果(数据)迁移涉及大表或未索引,最好迭代整个表不是使用 filter。...为避免这种情况,请执行以下步骤: 如果不是,则将其标记为空,并创建一个迁移。 部署。 从模型删除,但在迁移确保我们只将状态标记为已删除(removed)。 部署。...最后,创建一个删除迁移。 这是删除已经可以为空示例。首先我们从模型删除,然后修改迁移以仅更新状态不进行数据库操作。...下一阶段涉及从代码库删除对模型所有引用。所以我们这样做,然后我们生成一个迁移,从迁移状态删除模型不是数据库。...相反,更好选择是: 在 Postgres 添加没有默认,但在 Django 添加默认。这使我们能够确保所有新行都具有默认

    3.6K20

    关于“Python”Django 管理网站核心知识点整理大全52

    注意 如果你使用是Python 2.7,应调用方法__unicode__(),不是__str__(),但其中代 码相同。...例如,Django并不存储你输入密码,存储 从该密码派生出来一个字符串——散。每当你输入密码时,Django都计算其散 ,并将结果与存储进行比较。...如果这两个散相同,就通过了身份验证。 通过存储散,即便黑客获得了网站数据库访问权,也只能获取其中存储, 而无法获得密码。在网站配置正确情况下,几乎无法根据散推导出原始密码。...向管理网站注册模型 Django自动在管理网站添加了一些模型User和Group,但对于我们创建模型,必须 手工进行注册。...在这里,你将发现使用text[:50]作为条目的 字符串表示好处:管理界面,只显示了条目的开头部分不是其所有文本,这使得管理多个 条目容易得多。

    16510

    django自定义非主键自增字段类型详解(auto increment field)

    ,如果不是主键,则必须设置为一种“(key)” # (primary key)也是(key)一种,key还包括外(foreign key)、唯一(unique key) errors.extend...与之关联设置为可执行对象返回,设置:models.SET(可执行对象) def func(): return 10 class MyModel(models.Model): user = models.ForeignKey...(表名__字段名=1).values('表名__字段名') limit_choices_to=None, # 在Admin或ModelForm显示关联数据时,提供条件: # : - limit_choices_to...parent_link=False # 在Admin是否显示关联数据 OneToOneField(ForeignKey) to, # 要进行关联表名 to_field=None # 要关联字段名称..., # 在Admin或ModelForm显示关联数据时,提供条件: # : - limit_choices_to={'nid__gt': 5} - limit_choices_to=lambda

    2.3K10

    Django 3.1 官网学习路线

    Django 编写每个应用程序都由一个遵循特定约定 Python 包组成。Django 附带一个工具,它可以自动生成应用程序基本目录结构,因此您可以专注于编写代码,不是创建目录。...如前所述,默认应用程序是为常见情况包含,但不是每个人都需要它们。如果您不需要它们任何一个或全部,那么可以在运行 migrate 之前随意地注释或删除 INSTALLED_APPS 适当行。...字段还可以有各种可选参数;在本例,我们将投票默认设置为 0。 最后,请注意使用外定义了关系。这告诉 Django 每个选择都与一个问题相关。...不同模型字段类型(DateTimeField、CharField)对应于适当 HTML 输入小部件。每种类型字段都知道如何在 Django 管理显示自己。...使用表格内联(不是 StackedInline),相关对象将以更紧凑、基于表格格式显示: 自定义管理员更改列表 现在问题管理页面看起来不错了,让我们对“更改列表”页面做一些调整——这个页面显示系统所有问题

    8.2K10

    django 1.8 官方文档翻译: 2-6-4 数据库访问优化

    你也可能想使用外部项目,像django-debug-toolbar,或者直接监控数据库工具。 记住你可以优化速度、内存占用,甚至二者一起,这取决于你需求。...在数据库不是Python做数据库工作 比如: 在最基础层面上,使用过滤器和反向过滤器对数据库进行过滤。 使用F 表达式在相同模型基于其他字段进行过滤。 使用数据库注解和聚合。...用唯一被或索引来检索独立对象 有两个原因在get(),用带有unique或者db_index检索独立对象。首先,由于查询经过了数据库索引,所以会更快。...使用QuerySet.update()和delete() 通过QuerySet.update()使用批量SQL UPDATE语句,不是获取大量对象,设置一些再单独保存。...直接使用外 如果你仅仅需要外当中一个,要使用对象上你已经取得不是获取整个关联对象再得到它主键。

    1.1K30

    Django Admin后台管理

    , SchoolInfoAdmin) admin.site.register(StudentInfo) 显示效果如下 还可以通过模型管理类list_display属性来自定义显示。...list_display项可以是模型字段,也可以是模型方法(该方法必须有返回) 修改应用下models.pySchoolInfo类 # 学校模型类 class SchoolInfo(models.Model...list_display添加get_name方法 list_display = ['id', 'name', 'addr', 'get_name'] 显示效果如下 注:属性在后台管理页面是可以进行排序...,方法是不能排序,如果需要排序需要设置admin_order_field属性来为方法指定排序依据。...但在模型为字段方法设置第一个参数verbose_name可以实现自定义标题,ame = models.CharField(verbose_name='学校名', max_length=20)。

    2.8K10

    何在Django中使用聚合实现示例

    在本文中,我想向您介绍如何在Django中使用聚合,聚合含义是“内容相关项集合,以便它们可以显示或链接到”。...在Django,我们使用情况例如: 用于在Django模型数据库表查找“最大”,“最小”。 用于基于在数据库表查找记录“计数”。 用于查找一组相似对象“平均值”。...还用于查找总和。 在大多数情况下,我们对数据类型为“整数”,“浮点数”,“日期”,“日期时间”等使用聚合。 本质上,聚合不过是对一组行执行操作一种方式。...在数据库,它们由运算符表示为sum,avg等。执行这些操作Django在查询集中添加了两个新方法。 这两种方法是聚合和注释。...我们也可以说,在sql,aggregate是一个没有分组依据操作(SUM,AVG,MIN,MAX),annotate是在rowet_table.id上具有分组依据操作。 (除非明确覆盖)。

    1.7K31

    Django 1.10文文档-第一个应用Part7-自定义管理站点

    添加关联对象 现在Question管理页面有了,但是一个Question应该有多个Choices。此时管理页面并没有显示。现在有两个方法可以解决这个问题。...在我们例子,目前只有一个question对象存在。 请注意图中绿色加号,它连接到Question模型。每一个包含外关系对象都会有这个绿色加号。...你可以点击其中一表头来让列表按照这来进行排序,但是was_published_recently这表头不行,因为Django不支持按照随便一个方法输出进行排序。...最好每一个模板都应该存放在它所属应用模板目录内(例如polls/templates)不是整个项目的模板目录(templates),因为这样每个应用才可以被方便和正确重用。...最好每一个模板都应该存放在它所属应用模板目录内(例如polls/templates)不是整个项目的模板目录(templates),因为这样每个应用才可以被方便和正确重用。

    3.6K60

    人生苦短,我用PyCharm

    搜索和导航 在 PyCharm 中使用版本控制 在 PyCharm 中使用插件和外部工具 使用 PyCharm Professional 功能, Django 支持和科学模式 本文假设读者熟悉 Python...直接键入上述代码,不是复制粘贴。你会看到如下画面: ?...键入左侧 Debugger 标签显示数字,点击 Enter 。 转回 Debugger 标签。 再次点击 F8,计算 if 语句。注意现在你在第 14 行。为什么不是第 11 行呢?...在左侧,你可以查看自己做更改。在右侧,可以查看队友做更改。中间显示结果。存在冲突代码行被高亮显示,你可以在它们旁边看到 X 和 >>/<<。...我们还可以在其他 Django 部分(视图、URL 和模型执行代码补全、对 Django ORM 提供代码追踪支持(code insight support)、对 Django 模型提供模型依赖项关系图

    2.6K30
    领券