从Django的选择中获取显示值的键值对

3

我有一个包含选项的模型字段

CATEGORY_CHOICES = (
    (0, 'A'),
    (1, 'B'),
    (2, 'C'),
)

我是一个有用的助手,能够翻译文本。

我正在向我的数据库表中插入行,其中类别值可以是A、B或C。

不使用

if category:
    if category == "A":
        category = 0
    elif category == "B":
        category = 1
    elif category == "C":
        category = 2

在插入行之前,我能否使用我的 CATEGORY_CHOICES 将显示值翻译为键值?

你为什么需要首先这样做?category从哪里来? - Selcuk
从Excel导入 - Jamgreen
2个回答

8
构建一个字典,其中包含“display_value: value”对,并从中获取值:
CATEGORIES_D = {v: k for k, v in CATEGORY_CHOICES}
category = CATEGORIES_D[category]

0
这样怎么样:
choices_dict = {}
for choice, value in CATEGORY_CHOICES:
    choices_dict[value] = choice

category = choices_dict[category]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接