Возможно ли вернуть отображаемое имя выбора в Django?
Итак, когда вы делаете выбор для формы/модели, вы делаете следующее:
EXP_CHOICES = (
('1ST','First'),
('2ND','Second'),
.......
('XXX','YYY'),
) # where XXX is the value stored in the database and YYY is what you see in a form.
Это также относится к запросам, поэтому, когда у вас есть упомянутые варианты и вы выбираете один, сделайте запрос к модели, и он вернет '1ST'/'2ND'/'XXX'.
Но что, если вы хотите вместо этого отобразить YYY? Итак, мы знаем, что '1ST' - это 'Первый', но мы хотим сделать его читаемым для пользователя.
Есть ли способ получить доступ к этим EXP_CHOICES и выписать привязанные к ним YYY, или нужно сделать if&else/selector, чтобы было как
{% if data.chosen == '1ST'%}
First
{% elif ... %}
...
{% endif %}
Вы используете .get_fieldname_display(…)
[Django-doc], поэтому если поле модели chosen
, то это get_chosen_display
:
{{ data.get_chosen_display }}