Найти - Пользователи
Полная версия: is_safe при сохранении формы?
Начало » Django » is_safe при сохранении формы?
1
aliens
Здравствуйте

Есть фильтр, который при выводе в темплейт текста фильтрует bb коды и проводит некоторые операции (например для картинки, смотрит ее размер и если он больше определенного размера, то вставляет ограничение на его размер и выдает тэг картинки). Это для вывода каждому человеку занимает процессорное время и задержка на отображение человеку. Думал при сохранении формы использовать тот же код что для тэга и в базу сохранять уже готовый Html, но тогда получается при выводе надо выводить все тэги, что небезопасно.

Можно ли сделать, что-то типа is_safe для тэга, но при сохранении формы? Не хотелось бы терять фильтрацию тэгов джанговскую
Александр Кошелев
aliens
Можно ли сделать, что-то типа is_safe для тэга, но при сохранении формы? Не хотелось бы терять фильтрацию тэгов джанговскую
Ничего не понятно. Вы пишите абслютно противоположные вещи. is_safe флаг снимает эскейпинг, а не наоборот.
aliens
Daevaorn
Ну именно так. Можно ли не тэгом снимать эскейпинг, а хранить в базе некоторые тэги без эскейпа, чтобы при выводе в темплейт он выводился как тэг?
Александр Кошелев
В базе вы можете хранить что угодно. При выводе в шаблоне просто используйте фильтр safe, чтобы данные не эскейпились.
aliens
Daevaorn
Это я знаю, но тогда все данные не будут эскейпиться, что может плохо повлиять на вывод страницы (получается разрешены все html тэги). Единственное что придумал, это написат ьсвой фильтр safe, чтобы не эскейпить только некоторые тэги
Александр Кошелев
aliens
Это я знаю, но тогда все данные не будут эскейпиться, что может плохо повлиять на вывод страницы (получается разрешены все html тэги).
Не все, а только те которые вы пометили как safe. Вы не доверяете своей базе? Вы же уже туда складываете “хорошие” данные.
aliens
Daevaorn
Не все, а только те которые вы пометили как safe. Вы не доверяете своей базе? Вы же уже туда складываете “хорошие” данные.
ладно, тему можно закрыть. Переделал немного по-другому
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