示例代码如下:
REFUND_STATUS = (
('S', 'SUCCESS'),
('F', 'FAIL')
)
refund_status = models.CharField(max_length=3, choices=REFUND_STATUS)
我知道在模型中我可以使用方法get_refund_status_display()方法检索SUCCESS。但是,如果我想反过来这样做:我有'成功'我想找到缩写形式' S'。我怎么能在django或python中做到这一点?
答案 0 :(得分:0)
我会写这样的东西:
next(iter([x[0] for x in REFUND_STATUS if 'SUCCESS' in x]), None)
答案 1 :(得分:0)
将其转换为字典。
refund_dict = {value: key for key, value in REFUND_STATUS}
actual_status = refund_dict[display_status]
答案 2 :(得分:0)
您是否正在询问尚不清楚:如果我有一个类型为“ S”的对象,如何获得“ S”?如果我拥有“成功”,我如何获得“ S”?
在第一种情况下,您只需使用:
my_object.refund status # returns "S"
在第二种情况下,您可以将元组列表转换为具有相反顺序的新元组列表。然后,您可以将其转换为字典。然后,您可以将值查找为字典的键。
dict((v,k) for k,v in REFUND_STATUS).get("SUCCESS") # returns "S"