Перевести значения в стиле dict в шаблонах Django - PullRequest
1 голос
/ 16 декабря 2009

В моей модели я определяю варианты в соответствии с:

LANG_CHOICES = (
    ("Englisch", (
        (u"en-gb", u"England"),
        (u"en-us", u"United States of America"),
    ), )

Поле определено как:

lang_source = models.CharField(max_length=5, choices=LANG_CHOICES, default="en-gb")

Естественно, в моем шаблоне я хотел бы отобразить удобочитаемое значение, т.е.

{{ object.lang_source }}

должен печатать не «en-gb» (или соответствующее значение), а «Англия».

Какой самый элегантный способ сделать это? (Кроме того, в представлении можно импортировать dict из модели и вручную перевести значение.)

Ответы [ 3 ]

6 голосов
/ 16 декабря 2009
1 голос
/ 16 декабря 2009

http://www.djangoproject.com/documentation/models/choices/

{{ object.get_lang_source_display }}

должно работать.

0 голосов
/ 16 декабря 2009

Использование двух подчеркиваний подряд при определении имени поля запрещено из-за того, как django фильтрует QuerySets: http://docs.djangoproject.com/en/dev/topics/db/models/#field-name-restrictions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...