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

Django -给定模型选项的显示,如何从choice元组中检索值?

在Django中,如果你想要根据给定模型选项的显示值来检索对应的实际值,你可以使用get_FOO_display()方法。其中,FOO是你模型中的字段名。

假设你有一个模型类MyModel,其中有一个字段status,它的选项是一个choice元组:

代码语言:txt
复制
from django.db import models

class MyModel(models.Model):
    STATUS_CHOICES = (
        ('A', 'Active'),
        ('I', 'Inactive'),
        ('D', 'Deleted'),
    )
    status = models.CharField(max_length=1, choices=STATUS_CHOICES)

现在,如果你想要根据显示值"Active"来检索对应的实际值"A",你可以使用get_status_display()方法:

代码语言:txt
复制
>>> obj = MyModel.objects.get(pk=1)
>>> obj.get_status_display()
'Active'

这样,你就可以通过显示值来获取对应的实际值了。

在腾讯云的产品中,与Django相关的产品是腾讯云的云服务器(CVM)和云数据库MySQL(CDB)。你可以使用云服务器来部署Django应用程序,并使用云数据库MySQL来存储数据。你可以在腾讯云的官方网站上找到更多关于云服务器和云数据库MySQL的详细信息和产品介绍。

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

相关·内容

django 通过get_FOO_display 查找模型中的choice值

在 django 的 models.py 中,我们定义了一些 choices 的元组,类似一些字典值,比如一个订单状可能有多种状态,这时订单状态这个字段就可以用 choice ,在数据库中 status...status = models.IntegerField(verbose_name="订单状态", choices=order_status_choice,) 订单状态数字对应的状态含义可以用元组绑定,...,在 django 框架中可以用 get_FOO_display() 获取数字对应的订单状态。...本例可以用 order_status = main_order.get_status_display() 获取该订单的状态。FOO 是对应模型中的字段。...在代码中尽量不要出现固定的硬编码,比如某个判断条件,判断订单的状态为待订单审核,你可能会这么写: if status == 1: pass 比较灵活的写法应该是这样的: if status =

1.6K30

Django 3.1 官网学习路线

不同的模型字段类型(DateTimeField、CharField)对应于适当的 HTML 输入小部件。每种类型的字段都知道如何在 Django 管理中显示自己。...删除-显示删除确认页面。 如果“Date published”的值与教程 1 中创建问题时的时间不匹配,这可能意味着您忘记为 TIME_ZONE 设置正确的值。...例如,在一个博客应用程序中,您可能有以下视图: 博客首页-显示最近的几个条目。 条目“详细信息”页面——一个条目的永久链接页面。 基于年份的归档页面——显示给定年份中的所有月份和条目。...基于月份的归档页面——显示给定月份中的所有天数和条目。 基于天的归档页面——显示给定天中的所有条目。 评论操作——处理向给定条目发布评论。...要做到这一点,使用 list_display 管理选项,它是一个字段名的元组,以列的形式显示在对象的更改列表页面上: polls/admin.py¶ class QuestionAdmin(admin.ModelAdmin

8.2K10
  • 37.Django1.11.6文档

    给定一个模型实例,可以使用get_FOO_display()方法来访问选项字段的显示值。 ...验证给定的值在选项列表中存在。 错误信息的键:required, invalid_choice invalid_choice 错误消息可能包含%(value)s,它将被选择的选项替换掉。...默认的Widget:Select 空值:与empty_value给出的任何值。 规范化为:coerce 参数类型的值。 验证给定的值在选项列表中存在并且可以被强制转换。...默认的Widget:SelectMultiple 空值:empty_value 规范化为:coerce参数提供的类型值列表。 验证给定值存在于选项列表中并且可以强制。...如果字段是必选的,它会强制用户选择一个选项。 如果模型字段的default 且具有一个显示的default 值,将不会包含空选项(初始将选择blank=False 值)。

    24.4K80

    Django学习笔记 1.7 自定义 admin 站点

    1 自定义后台表单 polls/admin.py 通过 admin.site.register(Question) 注册 Question 模型,Django 能够构建一个默认的表单用于展示。...通常来说,你期望能自定义表单的外观和工作方式。你可以在注册模型时将这些设置告诉 Django。...from django.contrib import admin from .models import Choice, Question # ... admin.site.register(Choice...默认提供 3 个足够的选项字段。” 3 自定义后台更改列表 3.1 显示列表 默认情况下,Django 显示每个对象的 str() 返回的值。但有时如果我们能够显示单个字段,它会更有帮助。...为此,使用 list_display 后台选项,它是一个包含要显示的字段名的元组,在更改列表页中以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):

    99420

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

    如果在创建Question对象的时候就可以直接添加一些Choice,那样操作将会变得简单些。 删除Choice模型对register()方法的调用。...使用TabularInline代替`StackedInline``,相关的对象将以一种更紧凑的表格形式显示出来: ? 注意,这样多了一个"删除"选项,它允许你删除已经存在的Choice....如果我们想要同时显示一些别的内容,可以使用list_display属性,它是一个由多个字段组成的元组,其中的每一个字段都会按顺序显示在页面上,代码如下: # polls/admin.py class...过滤器显示的筛选类型取决与你过滤的字段,由于pub_data是DateTimeField,所以Django就自动给出了“今天”、“过去7天”、“本月”、“今年”这几个选项。 这一切进展顺利。...快速通道 Django 1.10中文文档-第一个应用Part1-请求与响应 Django 1.10中文文档-第一个应用Part2-模型和管理站点 Django 1.10中文文档-第一个应用

    3.6K60

    Django快速入门——投票程序(7) 自定义后台

    自定义后台 自定义表单 通过admin.site.register(Question)注册Question模型,Django会创建默认的表单在后台显示。...一个问题有多个选项,但后台却没有显示选项。...默认提供3个选项(extra=3)。 不过,现在选项占用的区域太大了。Django 提供了一种表格式的单行显示关联对象的方法。...自定义后台更改列表 现在投票的后台页看起来很不错,让我们对问题列表页面进行一些调整——改成一个能展示系统中所有投票的页面。默认情况下,Django 显示每个对象的 str() 返回的值。...为此,使用 list_display属性,它是一个包含要显示的字段名的元组,在更改列表页中以列的形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):

    24240

    django 学习笔记一

    ,可以操纵另外一个表,并且另外一个表的外联 key 自动关联模型中的 primary key # create 后面的参数是创建另外一个表对象的参数 # 则 choice 对象中的 id 自动关联 q...的 ID,并且 choice 数据库中自动添加一个 q.choice_set.create(choice_text="some text", votes=1) ---- 创建一个管理员用户 教程 ---...站点注册一个模型,则页面中可直接显示,修改 admin.py from .models import Question admin.site.register(Question) ---- 自定义管理表单...通常,你会想要自定义管理界面中表单的外观和功能。 你可以通过在注册对象的时候告知Django一些你想要的选项来完成。 让我们通过对编辑表单上的字段重新排序来看一下它是如何工作的。...= Choice extra = 3 # 设置要添加的关联个数 inlines = [ChoiceInline] 设置一个模型中展示的字段 # 用来设置展示的每个模型中的内容

    1K20

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

    在本例中, request.POST[‘choice’] 返回了所选择的投票项目的 ID ,以字符串的形式。 request.POST 的值永远是字符串形式的。...如果 choice 未在 POST 数据中提供 request.POST[‘choice’] 将抛出 KeyError 当未给定 choice 对象时上面的代码若检测到抛出的是 KeyError 异常就会向...这些视图代表了基本的 Web 开发中一种常见的问题: 根据 URL 中的参数从数据库中获取数据,加载模板并返回渲染后的内容。...这两个视图分别用于显示两种抽象概念 “显示一系列对象的列表” 和 “显示一个特定类型的对象的详细信息页”。 每个视图都需要知道使用哪个模型数据。因此需要提供将要使用的 model 参数。...在 DetailView 中 poll 变量是自动提供的 – 因为我们使用了一个 Django 模型 (Poll) ,Django 能够为上下文变量确定适合的名称。

    1.5K10

    django模型

    每个模型对 应数据库中唯一的一张表 如何编写模型 模型:每个模型都用一个类表示,该类继承自django.db.models.Model。...unique 更多 字段选项——null 如果为True,Django将用NULL来在数据库中存储空值 默认值:False 字段选项——blank 如果为True , 该字段允许不填 默认值:False...——default 字段的默认值,可以是一个值或者调用对象 字段选项——primary_key 如果为True,那么这个字段就是模型的主键 字段选项——unique 如果该值设置为True,这个字段的值在整张表中必须是唯一的...也可以使用一条语句创建并保存一个对象,使用create()方法 查询对象 通过模型中的管理器构造一个查询集,来从你的数据库中获取对象。 查询集(queryset)表示从数据库中取出来的对象的集合。...如果您在某些情 况下使用查询集的结果,当您最初获取数据时不知道是否需要这些特定字段,可以告诉 Django不要从数据库中检索它们。

    3.1K20

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

    请参考 如何安装 Django 中的意见先删除旧版本的 Django 再安装一个新的。...在 Django 中编写一个有数据库支持的 Web 应用的第一步就是定义你的模型 – 从本质上讲就是数据库设计及其附加的元数据。 哲理 模型是有关你数据的唯一且明确的数据源。...在这简单的投票应用中,我们将创建两个模型: Poll 和 Choice。Poll 有问题和发布日期两个字段。Choice 有两个字段: 选项 ( choice ) 的文本内容和投票数。...哲理 Django 应用是“可插拔的”:你可以在多个项目使用一个应用,你还可以分发应用,因为它们没有被捆绑到一个给定的 Django 安装环境中。...>>> p = Poll.objects.get(pk=1) # 从关联对象集中显示所有 choices -- 到目前为止还没有。

    99820

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

    如果你不需要它们中的任何一个或所有应用,可以在运行migrate之前从INSTALLED_APPS中自由地注释或删除相应的行。...每个模型由一个子类django.db.models.Model的类表示。每个模型都有一些类变量,每个变量表示模型中的数据库字段。...理念: Django应用程序是“即插式”的:您可以在多个项目中使用应用程序,并且您可以分发应用程序,因为他们不必绑定到给定的Django安装。...您必须从manage.py所在的同一目录运行python,或确保该目录在Python搜索路径中,这个import mysite才会成功。...每一种类型的字段,Django管理站点都知道如何显示它们; 每个DateTimeField字段都会有个方便的JavaScript快捷方式。

    2.3K60

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

    博客详细页面 – 一篇博客的独立页面。 基于年份的归档页 – 显示给定年份中发表博客的所有月份。 基于月份的归档页 – 显示给定月份中发表博客的所有日期。...基于日期的归档页 – 显示给定日期中发表的所有的博客。 评论功能 – 为一篇给定博客发表评论。...投票功能 – 为一项给定的民意调查处理投票选项。 在 Django 中,网页及其他内容是由视图来展现的。而每个视图就是一个简单的 Python 函数(或方法, 对于基于类的视图情况下)。...Django 将会在那寻找模板。 Django 的 TEMPLATE_LOADERS 配置中包含一个知道如何从各种来源导入模板的可调用的方法列表。...当 DEBUG 值是 False ( 在你的 settings 模块中 ) 时, 默认的 404 视图将使用此模板来显示所有的 404 错误。

    1.8K50

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

    不同模型的字段类型 (DateTimeField, CharField) 会对应的相应的 HTML 输入控件。 每一种类型的字段 Djaong 管理网站都知道如何显示它们。...这很简单: from polls.models import Choice admin.site.register(Choice) 现在 “Choices” 在 Django 管理网站上是一个可用的选项了...移除对 Choice 模型的 register() 方法调用 。...请注意 Django 默认的管理网站中的任何模板都是可覆盖的。 要覆盖一个模板,只需要像刚才处理 base_site.html 一样 – 从默认的目录下复制到你的自定义目录下,并修改它。...自定义你的 应用 模板 细心的读者会问:如果 TEMPLATE_DIRS 默认的情况下是空值, 那 Django 是如何找到默认的管理网站的模板的?

    2.5K40

    django2.0入门教程第二节

    继上篇 django2.0入门教程第一节,生成了投票应用,接下来讲解如何使用django的模型与数据库进行交互 数据库设置 打开mysite/settings.py,可看到默认情况下,django使用的是...OK 以上命令将django激活的应用所需的数据表创建好了 创建模型 django的模型(models)在本质上就是对数据表的定义。...在django中是不需要直接与数据库交互的,所有对数据库的操作都可以映射为模型类的操作,有一个数据表,就有一个模型类与之对应 polls/models.py #_*_coding:utf8_*_ from...,得到的只是一个对象,看起来并不直观,我们修改下polls/models.py,让结果显示更友好 修改返回的数据格式: polls/models.py from django.db import models...admin.png 后台并没有看到我们建立的Question模型,需要将模型引入,才能在后台进行维护: polls/admin.py #_*_coding:utf8_*_ from django.contrib

    71630

    Django模型最佳实践

    存储URL的CharField UUIDField 存储全局唯一标识符 字段属性 通用字段属性 选项 说明 null 数据库中对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时...,是否允许为NULL,默认为False choices 设定字段的选项,各元组中的第一个值是设置在模型上的值,第二值是人类可读的值 db_column 字段对应到数据库表中的列名,未指定时直接使用字段的名称...editable 字段在后台模型管理或ModelForm中是否显示,默认为True error_messages 设定字段抛出异常时的默认消息的字典,其中的键包括null、blank、invalid、invalid_choice...unique 设置为True时,表中字段的值必须是唯一的 verbose_name 字段在后台模型管理显示的名称,未指定时使用字段的名称 ForeignKey属性 limit_choices_to:值是一个...on_delete:外键关联的对象被删除时对应的动作,可取的值包括django.db.models中定义的: CASCADE:级联删除。

    2.3K40

    Django 学习笔记 1.2 模型和 admin 站点

    2 创建模型 在 Django 里写一个数据库驱动的 Web 应用的第一步是定义模型 - 也就是数据库结构设计和附加的其它元数据。...在这个简单的投票应用中,需要创建两个模型:问题 Question 和选项 Choice。Question 模型包括问题描述和发布时间。Choice 模型有两个字段,选项描述和当前得票数。...每个选项属于一个问题。 这些概念可以通过一个简单的 Python 类来描述。...这个 migrate 命令选中所有还没有执行过的迁移(Django 通过在数据库中创建一个特殊的表 django_migrations 来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步到数据库结构上...4 初试 API 一旦创建 数据模型 后,Django 自动给予你一套数据库抽象 API,允许你创建,检索,更新和删除对象。

    65010
    领券