python - 如何在 __str__ 方法中获取 TextChoice 枚举值
问题描述
这就是我尝试在models.py
from django.db import models
class Country(models.Model):
class Countries(models.TextChoices):
US = 'US', 'United States'
EP = 'EP', 'Europe'
IND = 'IN', 'India'
name = models.CharField(max_length=2,
choices=Countries.choices,
blank=True)
def __str__(self):
return getattr(self.Countries, self.name)
str调用只给出两个字母的国家代码。我如何获得完整的信息,例如US (United states)
或US, United States
当我手动添加国家时,admin
它会显示全名。它必须以某种方式得到它。
解决方案
使用get_FOO_display()
(Django Doc)方法
class Country(models.Model):
# other fields
def __str__(self):
return "{value} ({display_value})".format(value=self.name, display_value=self.get_name_display())
推荐阅读
- jquery - 如何在所选元素上添加类并从其他元素中删除?
- sql - SQL 产品包含其他
- python - 如何在python中强制属性为int?
- macos - 使用 AVAudioEngine 更改某些频道的音量
- java - 调用 super 会抛出“super 不是表达式”
- storage - 如何在 OpenEBS 主机上的内存 tmpfs 上运行副本?
- shiny - 如何基于闪亮的选定复选框输入添加条件“selectInput”?
- node.js - NPM 安装/启动错误
- kubernetes - 我们如何在 OpenEBS 中将多个磁盘挂载到单个存储池中?
- apache-kafka - KSQL REST API 不需要时间来响应