У меня есть поле выбора со списком кортежей:
EVENT_CHOICES = [(1, "queued"), (2, "sent"), (3, "failed")]
Это сохраняется как PositiveSmallIntegerField
, а не CharField
по причинам производительности:
event_type = models.PositiveSmallIntegerField(choices=EVENT_TYPE_CHOICES)
В моем приложении поле заполняется через веб-крючок для внешнего источника, который POSTS
является str
компонентом кортежа. Например, я получаю queued
, sent
или failed
в качестве переменной POST
.
Какой самый простой / наиболее эффективный способ отменить поиск на EVENT_CHOICES
и вернуть int
из str
?
Например, неуклюжий длинный способ будет выглядеть так:
if event == "queued":
event_type = 1
if event == "sent":
event_type = 2
if event == "failed":
event_type = 3
Учитывая, что у меня действительно много вариантов, я предполагаю, что для этого должен быть более аккуратный способ?