bleach linkify Оборачивание localhost:8000
30 марта 2017 г. 3:43
bleach linkify() пока, к сожалению, не умеет оборачивать ссылки локалхоста типа localhost:8000, но можно написать небольшой workaround, суть которого заключается в следующем: мы заменяем localhost:8000 на какой-нибудь несуществующий сайт, напр. dummy_site.ru, затем применяем linkify() и в заключении возвращаем localhost:8000. Вот небольшой реальный пример:
class Log(models.Model):
content = models.TextField('Содержание лога')
def get_content(self):
def set_target(attrs, new=False):
attrs['target'] = '_blank'
return attrs
content = '{}'.format(self.content.replace('\n', '<br/>'))
# workaround to allow linkify localhost:8000
content = content.replace('localhost:8000', 'dummy_site.ru')
content = linkify(content, callbacks=[set_target, ])
content = content.replace('dummy_site.ru', 'localhost:8000')
return content
Чтобы долго не искать, как добавить
target="_blank" ссылкам, я оставил callback set_target(attrs, new=False) - часто пригождается.Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0