从Django中的选项中获取显示值的键值

时间:2015-03-04 12:44:31

标签: django django-models

我有一个带有选择的模型字段

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将显示值转换为键值吗?

2 个答案:

答案 0 :(得分:6)

构建display_value: value对的dict并从中获取值:

CATEGORIES_D = {v: k for k, v in CATEGORY_CHOICES}
category = CATEGORIES_D[category]

答案 1 :(得分:0)

这个怎么样:

choices_dict = {}
for choice, value in CATEGORY_CHOICES:
    choices_dict[value] = choice

category = choices_dict[category]