Изменение способа отображения возвращаемого результата в Django
Недавно я начал изучать Python/Django в целом и в попытке ускорить процесс обучения и в то же время сделать что-то конструктивное, я начал свой личный проект.
У меня установлена последняя версия Django/Python/Jinja2 вместе с яйцом Python Battle.net API. В настоящее время я запрашиваю "символ" и пытаюсь изменить вывод возвращаемого значения, вот функция из моих представлений:
def viewCharacter(request, name):
character = get_object_or_404(Member, name=name)
info = Character('EU', 'Auchindoun', name, fields=[Character.GUILD])
ctx = { 'character': character, 'info': info, 'guildname': 'Guild Name' }
return render_to_response("roster/viewCharacter.html", ctx, request)
Теперь, в моем шаблоне, я попытался "перевести" info.class_ (который возвращает числовое значение) из его числового значения в строку (имя класса), но я всегда получаю сообщения об ошибках о невозможности info.class_ использоваться в if/for заявлениях / циклах или других ошибках. (Пытался сравнить его с двумя кортежами)
Я действительно не могу найти способ сделать это онлайн, поэтому я приехал в одно место, которое помогло мне больше всего в моем процессе обучения.
Любая помощь будет наиболее ценится! - ниеру
2 ответа
Есть ли причина, по которой вы не можете добавить еще одну переменную в контекст следующим образом:
ctx = {'character': персонаж, 'info': информация, 'class': repr(info.class_), 'имя гильдии': 'Имя гильдии' }
РЕДАКТИРОВАТЬ: с дополнительной информацией, которую вы предоставили, вот мое новое предложение.
Изменить:
ctx = { 'name': name, 'character': character, 'info': info, 'class': repr(info.class_), 'guildname': 'Team-Potato' }
чтобы:
ctx = { 'name': name, 'character': character, 'info': info, 'className': classnameDict[info.class_], 'guildname': 'Team-Potato' }
Это просто делает класс в представлении. Теперь добавьте его в свой шаблон, используя
{{ className }}
Если вам действительно нужно использовать имя класса в шаблоне, попробуйте использовать этот шаблонный фильтр или просто получите его в представлении и передайте в контексте:)