django - 如何在 django 中翻译枚举字符串?
问题描述
所以我有一个具有状态字段的模型,为此我创建了一个Enum
类,如下所示:
class Status(Enum):
PENDING_APPROVAL = "PENDING-APPROVAL"
PLANNED = "PLANNED"
APPROVED = "APPROVED"
CHANGED_PLAN = "CHANGED-PLAN"
COMPLETED = "COMPLETED"
CANCELED = "CANCELED"
然后添加这个类作为模型的选择:
status = models.CharField(
choices=[(tag.value, tag.name) for tag in Status],
max_length=20,
verbose_name=pgettext("Order", "Status"),
default=Status.PENDING_APPROVAL.value,
)
一切正常,但问题是,一旦我单击下拉列表从我的Enum
班级中选择一个选项,我希望我的选择被翻译成我网站的另一种语言。
我找不到如何将我Enum
的课程选择翻译成我需要的语言。
解决方案
使用标准的 models.TextChoices也可以选择接受翻译:
from django.utils.translation import gettext_lazy as _
class Status(models.TextChoices):
APPROVED = 'APPROVED', _('Approved')
CANCELED = 'CANCELED', _('Canceled')
推荐阅读
- javascript - 如何在 Linnworks 嵌入式应用程序中获取刷新的令牌?
- sql - VBA SQL字符串将短日期保存为通用日期而不是短日期
- javascript - 使用异步调用在浏览器中开始下载文件
- r - 从这些向量名称的列表中获取向量列表
- aframe - 在 aframe 中向 DPDB 添加条目
- ruby-on-rails - 如何为多态关系编写 :within 范围?
- google-maps - 如何处理新 Places API Billing 中的 Sessions?
- java - PSO 算法中的环形拓扑
- node.js - Sails.js:如何根据关联集合中的值查找记录?
- sql - 格式化为百分比