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

Django field.choices + HTML.如何获取单词display,而不是id?

在Django中,使用field.choices定义模型字段的选项列表,其中包含了每个选项的id和display值。当在HTML中渲染表单时,通常会将选项的id作为值传递给后端,而不是显示值。

要获取选项的显示值而不是id,可以使用Django提供的一些方法和技巧。以下是几种常见的方法:

  1. 使用get_FOO_display()方法:假设你的模型字段名为FOO,可以通过在模板中调用get_FOO_display()方法来获取选项的显示值。例如,如果你的模型实例为obj,可以使用{{ obj.get_FOO_display }}来获取显示值。
  2. 使用choices属性:模型字段的choices属性是一个包含所有选项的元组列表,每个元组包含id和display值。你可以在模板中遍历choices列表,通过比较id和当前值来获取对应的display值。例如,如果你的模型实例为obj,可以使用以下代码获取display值:
  3. 使用choices属性:模型字段的choices属性是一个包含所有选项的元组列表,每个元组包含id和display值。你可以在模板中遍历choices列表,通过比较id和当前值来获取对应的display值。例如,如果你的模型实例为obj,可以使用以下代码获取display值:
  4. 使用自定义过滤器:你可以在模板中定义一个自定义过滤器,用于根据id获取对应的display值。首先,在你的应用中创建一个templatetags目录,并在该目录下创建一个Python文件(例如,custom_filters.py)。然后,定义一个过滤器函数,接受id作为参数,并返回对应的display值。最后,在模板中加载自定义过滤器,并使用过滤器获取display值。以下是一个示例:
  5. 使用自定义过滤器:你可以在模板中定义一个自定义过滤器,用于根据id获取对应的display值。首先,在你的应用中创建一个templatetags目录,并在该目录下创建一个Python文件(例如,custom_filters.py)。然后,定义一个过滤器函数,接受id作为参数,并返回对应的display值。最后,在模板中加载自定义过滤器,并使用过滤器获取display值。以下是一个示例:

无论使用哪种方法,都可以根据选项的id获取对应的display值,以便在HTML中正确显示。关于Django的field.choices和HTML的使用,你可以参考腾讯云的云服务器CVM产品文档:https://cloud.tencent.com/document/product/213/4957

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

相关·内容

Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?

现在,Django 3.0正式推出,它只支持Python 3.6以上的版本,对于使用Python 3.5的各位大兄弟们,抱歉,Django 2.2.x系列是最后一个支持Python 3.5的系列。...中没有特定的枚举字段,需要我们手动去指定,而在Django 3.0中,自定义枚举类型TextChoices,IntegerChoices和Choices现在作为一个的方式来定义Field.choices...def is_upperclass(self): return self.year_in_school in {self.JUNIOR, self.SENIOR} 大家看,是不是方便了许多...django.contrib.admin¶ 增加了对admin_order_field属性属性,支持ModelAdmin.list_display。...,所以下次我会再出一篇文章来重点介绍一下ASGI,这篇我们简单了解下ASGI以及看看它在Django 3.0中是如何去使用的。

2.6K10

翻译了Django1.4数据库访问优化部分

Django数据库访问优化 by huyang @手机搜狐 date 2013-05-08 rst生成的html5在线ppt下载:http://www.kuaipan.cn/file/id_12834302878348970...News.object.all() # 此时并未执行数据库查询 print news_list # 用时方执行查询操作 何时它们被执行. # 用时方执行查询操作 print news_list 数据如何被缓存...ID: news.channel_id 不是: news.channel.id 批量插入 用 django.db.models.query.QuerySet.bulk_create() 批量创建对象,...Entry.objects.bulk_create([ Entry(headline="Python 3.0 Released"), Entry(headline="Python 3.1 Planned") ]) ...不是...Entry.objects.create(headline="Python 3.1 Planned") 这同样适用于 ManyToManyFields, 因此,这么做 team.members.add(me, my_friend) ...不是这么做

62510

django中ModelForm多表单组合的解决方案

这么多种选择放在一起,如何分出高下?我想此时的场景下就两个标准: 1、相同的功能用最少的代码实现(代码少BUG也会少); 2、相对最易于理解,从而易于维护和扩展。...django对表单的支持力度非常大,我们用不着在浏览器端的html文件里写大量代码,再到web端去匹配form里的id/name/value、验证规则,再与持久层数据库比较并做操作。...error_row, row_ender, help_text_html, errors_on_separate_row):           "Helper function for outputting HTML...那么,一个模型代表着RDS中的一张表,模型的实例代表着关系数据库中的一行,form如何与一行相对应呢?...例如,我们希望录入合同,其中合同Model中还有地址Model和项目Model,项目Model中又有地址Model,等等。 当然,我们有很多种实现的方案,但是,前面三部分说了那么多,不是浪费口水的。

3.4K20

Django admin 一些有用的设置

字段是Django模型的默认主键)     list_display = ('id', 'caption', 'author', 'publish_time')          #list_per_page...= ('first_name', 'last_name', 'colored_name') 实际代码(注意看上面代码,是写在models里,不是admin中的ModelAdmin里): ?...但是,我们看到标题并不是我们想要的,那么如何设置标题呢? 添加一行代码:colored_status.short_description = u"状态" ? 在函数结束之后添加上面代码即可 ?...注册的时候使用admin_site.register,不是默认的admin.site.register。 ? 效果如下: ?  后经网友提示发现也可以这样: ?...我们如何修改这个app的名称达到定制的要求呢,其实Django已经在文档里进行了说明。 从Django1.7以后不再使用app_label,修改app相关需要使用AppConfig。

2.6K70

Django笔记(十三)一对一,一对多,多对多之间的查询

目录 一对一 创建实例 choice类型如何获取具体值 如何获取一对一另一个表里面的数据 一对多 实体类 一对多代码(自己创建第三个表) 一对多代码(Django给你生成第三个表) 如何操作第三个表...字段是choice类型,如何获取到的是对应的值,不是键 这个表里面的这个字段,数据库保存的是键1或者2 我想查询出来的这个字段是具体的值,如何写 也就是使用下划线, get_字段名..._display() 这样就可以获取具体的值 如何获取一对一另一个表里面的数据 UserInfo是一个表,UserProfile是一个表,并且UserProfile表里面有一个字段是一对一的外键,关联是...`id`, # `myfirst_xaingqing`.`nan_id`, # `myfirst_xaingqing`....给你生成的,就是通过ManyToManyField() 这个 如何操作第三个表 这个Django给生成的第三个表,在model文件里面是没有的,那么我们要如何操作这个表,也就是实现对这个表的增删改查

3K20

37.Django1.11.6文档

如果需要获取父模板中的block 的内容,可以使用{{ block.super }} 变量。 如果你想要在父block 中新增内容不是完全覆盖它,它将非常有用。...is_anonymous是True不是False。 is_authenticated是False,不是True。 is_staff 和is_superuser 永远为False。...拆分搜索查询为单词并返回包含每个单词的所有对象,不区分大小写,其中每个单词必须在至少一个search_fields。 ...Cookie 包含会话的ID —— 不是数据本身(除非你使用cookie based backend)。 启用会话 会话是通过一个middleware实现的。...我们使用这个例子来演示如何利用会话对象来工作,不是一个完整的logout()实现。 设置测试cookie  为了方便,Django 提供一个简单的方法来测试用户的浏览器是否接受Cookie。

24.3K80

美多商城项目(十二)-功能补充

其实不是,最根本的原因是他的性格。每个人都不是圣人,不可能做到看透一切,不受外界所困扰。人好比一个容器,负面情绪总有装满的那一刻,而且越是那些平时看似乐观开心的人,爆发的那一刻就越恐怖。...平时多关注一下身边的人,我们既不为其他人增添烦恼,又不能因其他人烦恼。有时退一步未必海阔天空,让一步也未必风平浪静。适时的回击比你隐忍要智慧的多。 ?...id。...2.通过id获取到商品的评论相关信息。 3.将信息序列化并返回。 ?...团队开发注意事项 浅谈密码加密 Django框架中的英文单词 Django中数据库的相关操作 DRF框架中的英文单词 重点内容回顾-DRF Django相关知识点回顾 美多商城项目导航帖

48730

美多商城前三天遗忘知识点回顾

具体的类型,分类因为没有查到相关内容,不是很清楚,小编只是将之前碰到的token进行一个汇总,如果有不恰当的地方,大家多多谅解。...3.JWT中是如何加密的,安全吗? 答:JWT中header、payload都是由base64加密的,base64是对称加密解密的过程,不安全,详细内容介绍见5。...答:不可以,前面已经提到了,token的header和payload是经过base64加密的,base64是对称加密,并不安全,因此不建议存放敏感信息。...which=Login&display=pc&response_type=code&client_id=101474184&redirect_uri=http%3A%2F%2Fwww.meiduo.site...团队开发注意事项 浅谈密码加密 Django框架中的英文单词 Django中数据库的相关操作 DRF框架中的英文单词

37020

Django_rest框架电商项目实践项目(一篇文章讲清楚电商项目)项目的创建与基本的配置,所有接口的代码,项目代码已给

查询的外键需要返回具体的name值,不是id 第一种方法 第二种方法 实现用户的登录 用户的详情 用户详情序列器 view url 前端如何做 用户的注册 序列化 view url 用户信息的更新...import User class UserProfileAdmin(admin.ModelAdmin): list_display = ['id', 'mobile_phone', '...): list_display = ['id', 'name',] admin.site.register(Manufacturer, ManufacturerAdmin) class...ProductAdmin(admin.ModelAdmin): list_display = ['id', 'model', 'price', 'category', 'manufacturer...pk 前端如何传参 查询的外键需要返回具体的name值,不是id 第一种方法 class ProductRetrieveSerializer(serializers.ModelSerializer

2.7K10

django admin详情表单显示中添加自定义控件的实现

use_required_attribute) 用super调用了__init__方法,instance就是创建后该条数据的实例,我们可以在其中判断,如果instace存在的话,那么获取其中的id可以进行其他的操作...,假如我们的point不是一个button,而是一个text格式的input,那么我们就可以在[value]处添加我们想要获取的值,并在attrs中将type改为hidden,可以看到我调用了一个self.base_fields...至此,我们的form添加额外字段显示以及button操作就完成了,还有最后一点,当type为text时我们直接添加value即可,type为button时,如果需要点击弹窗该如何操作。...弹出窗口的值获取可以在form中添加一个hidden字段,value为我们想要获取的值,在js中取值赋值即可。...在admin类中的把 pass_audit_str 加入到list_display元组中 list_display = (‘id’, ‘create_time’, ‘pass_audit_str’,)

4.9K20

35.Django2.0文档

相对列表来说,有些时候我们更需要获取单个的对象, `` get()`` 方法就是在此时使用的: ? 这样,就返回了单个对象,不是列表(更准确的说,QuerySet)。...也就是说,这些修改实质上是构成模块的一部分,并且正好被管理工具使用,不是专门针对管理工具的。 除了这些,Django还提供了大量选项让你针对特别的模块自定义管理工具。...请注意,date_hierarchy接受的是* 字符串* ,不是元组。因为只能对一个日期型字段进行层次划分。  ...解决这个问题的办法是使用`` raw_id_fields`` 选项。它是一个包含外键字段名称的元组,它包含的字段将被展现成`` 文本框`` ,不再是`` 下拉框`` 。...例如,你可以给一个用户添加和修改publishers的权限,不给他删除的权限。 请注意,这些权限是定义在模块级别上,不是对象级别上的。

11.3K100
领券