2013-07-29 5 views
1

У меня есть переменная 'text' в python, которая содержит очень длинную строку. И у меня есть dict, ключ которого - слово/группа слов и значение - это URL. Мне нужно отобразить эту переменную «текст», используя django, создавая гиперссылку всех слов/группы слов из текста, которые также существуют в dict. Ссылка уже сохранена как значение в dict.Вставить гиперссылку в текст с помощью django

текст = "тадж махал в индии"

my_dict = { 'Тадж Махал': 'url1', 'Индия': 'URL2'}

Показать этот текст с помощью Джанго где «Тадж Махал 'и' india 'являются гиперссылками на url1 и url2 соответственно. Я пытался использовать urlize, но это не решило проблему.

ответ

2

Вы можете использовать replace() на text переменной:

>>> text = "taj mahal is in india" 
>>> my_dict = { 'taj mahal':'url1', 'india':'url2' } 
>>> for key, value in my_dict.iteritems(): 
...  text = text.replace(key, value) 
... 
>>> text 
'url1 is in url2' 

или:

>>> text = "taj mahal is in india" 
>>> for key, value in my_dict.iteritems(): 
...  text = text.replace(key, '<a href="%s">key</a>' % value) 
... 
>>> text 
'<a href="url1">key</a> is in <a href="url2">key</a>' 

Если вы хотите, чтобы потом передать эту text переменную в шаблон, применить safe фильтр на нем:

{{text|safe}} 

Надеюсь, что это поможет.

+0

Но проблема с этим решением заключается в том, что если я передам этот текст переменной после замены, как вы указали на django внутри файла шаблона, например ** {{text}} **, то он отображает эту точную информацию в пользовательском интерфейсе, то есть _ key находится в key _, вместо отображения гиперссылки. – VineetChirania

+0

Несомненно, я обновил ответ, пожалуйста, проверьте. – alecxe

+0

** ** безопасно ** вещь была именно то, что я искал. Спасибо тонну, alecxe :) – VineetChirania

Смежные вопросы