Как мне ссылаться на список выбора в шаблоне django? - PullRequest
4 голосов
/ 07 января 2010

В моей модели django есть следующее:

PRIORITY = (
    (1, 'Low'),
    (2, 'Normal'),
    (3, 'High'),
)

Очевидно, что запись, связанная с этим, хранит целое число. Однако в моем шаблоне я хотел бы показать приоритет в удобочитаемом формате. Как именно это сделать?

Мой шаблон:

{% for x in items %}
{{ x }} (added on {{ x.create_date }})<br>
{% endfor %}

{{ x.id }} будет идентификатором приоритета.

Заранее спасибо.

Ответы [ 2 ]

20 голосов
/ 07 января 2010

Предполагая, что вы правильно установили опцию choices при определении модели, Django автоматически создает вспомогательные функции для отображения имен для вас. Подробнее см. Документацию по дополнительные методы экземпляра .

Если ваш экземпляр модели x и ваш атрибут, который хранит приоритет, равен priority, то в вашем шаблоне вы должны использовать:

{{ x.get_priority_display }}
0 голосов
/ 07 января 2010

Действительно, «приоритет» с именем и идентификатором - это придуманный вами объект. Если вы просто сделаете это Приоритетной моделью и будете относиться к ней как к таковой, все будет работать так, как должно. Проблемы возникают из-за того, что вы пытаетесь избежать использования системы.

...