在 djangoviews.py 中,如何从输入中获取选择(数字)才能获得匹配的“描述”?例如用户选择 3 并返回“Yellow”
colors = [
('0','black'),
('1','white'),
('2','Red'),
('3','Yellow'),
('4','Blue'),
('5','Green')
]
...
colorSelection = form.cleaned_data.get('color')
#lookup color description
colorDescription = ???
您需要制作一本字典,或者至少需要一些东西来查找描述,所以:
COLORS = [
('0', 'black'),
('1', 'white'),
('2', 'Red'),
('3', 'Yellow'),
('4', 'Blue'),
('5', 'Green'),
]
# …
colorSelection = form.cleaned_data.get('color')
colorDescription = dict(COLORS).get(colSelection)
然而,从 django-3.0 开始,人们经常用
TextChoices
来指定这些选择,这使得查找更加方便:
class ColorChoices(models.TextChoices):
BLACK = '0', 'black'
WHITE = '1', 'white'
RED = '2', 'red'
YELLOW = '3', 'yellow'
BLUE = '4', 'blue'
GREEN = '5', 'green'
然后我们可以通过以下方式查找:
ColorChoices(colSelection).label