Возможно ли вернуть отображаемое имя выбора в 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 }}
Вернуться на верх