Найти - Пользователи
Полная версия: filter+показывает теги
Начало » Django » filter+показывает теги
1
Evg
Делаю кстомизацию вывода формы:

Есть такой фильтр, который просто обрачивает value в нужный хтмл:
from django.template.defaultfilters import *

@register.filter
def wrap_error(value):
return '<table><tr><td width="107px"></td><td>'+value+'</td></tr></table>';
wrap_error.is_safe = True
далее в шаблоне применею его для обертывания ошибок:

{{ form.login.errors|striptags|wrap_error }}


Но такое дело что когда захожу на страницу с формой, когда еще нету ошибок - выводится хтмл код:
<table><tr><td width=“107px”></td><td>'</td></tr></table>
те они экранируется и выводится, а когда появляется реальная ошибка то эти поля выводятся нормально - хтмл кода не видно и ошибка обернута, те все как я ожидаю.
подскажите как справится чтобы он не экранировал теги когда нету ошибок?
slav0nic
if value забыл, оно ж полюбому будет вызываться и отрабатывать
Evg
ну и пусть бы отрабатовало, чего он в одном случает теги прячет то а в другом выводит как обычный текст?
Ferroman
Потому что в одном случае автоэкранирование джанги срабатывает, а при выводе как ошибки - нет. Точнее все отрабатывается, ероров нет, сам эрор не выводится, но выводится сгенерированный фильтром код как текст (эта часть кода все равно срабатывает). Во втором случае автоеэкранирование не срабатывает и вывод идёт как html.
И да, или в темплейте нужно спрятать текст, если нет ошибок, или прописать if value в фильтре.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB