Уведомления

Группа в Telegram: @pythonsu

#1 Март 26, 2009 12:36:41

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

filter+показывает теги

Делаю кстомизацию вывода формы:

Есть такой фильтр, который просто обрачивает 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>
те они экранируется и выводится, а когда появляется реальная ошибка то эти поля выводятся нормально - хтмл кода не видно и ошибка обернута, те все как я ожидаю.
подскажите как справится чтобы он не экранировал теги когда нету ошибок?



Офлайн

#2 Март 26, 2009 13:49:19

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

filter+показывает теги

if value забыл, оно ж полюбому будет вызываться и отрабатывать

Офлайн

#3 Март 27, 2009 09:27:32

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

filter+показывает теги

ну и пусть бы отрабатовало, чего он в одном случает теги прячет то а в другом выводит как обычный текст?



Офлайн

#4 Март 27, 2009 15:14:08

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

filter+показывает теги

Потому что в одном случае автоэкранирование джанги срабатывает, а при выводе как ошибки - нет. Точнее все отрабатывается, ероров нет, сам эрор не выводится, но выводится сгенерированный фильтром код как текст (эта часть кода все равно срабатывает). Во втором случае автоеэкранирование не срабатывает и вывод идёт как html.
И да, или в темплейте нужно спрятать текст, если нет ошибок, или прописать if value в фильтре.

Отредактировано (Март 27, 2009 15:14:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version