2013-07-29 24 views
1

我有蟒蛇其中包含一个很长的字符串变量“文本”。我有一个字典,其关键是一个词/一组词,值是一个网址。我需要显示使用Django这个变量“文本”,产生的所有的单词/从文本其也存在于字典字的组超链接。链接已经存储为字典中的值。插入超链接成文本使用Django

文本= “泰姬陵是印度”

my_dict = { '泰姬陵': 'URL1', '印度': 'URL2'}使用Django

显示本文其中“泰姬陵'和'印度'分别是指向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 ** {{文本}} **,然后显示在UI这个确切的事情,即_ keykey _中,而不是显示超链接。 – VineetChirania

+0

当然,我已经更新了答案,请检查。 – alecxe

+0

的** | **安全的事情正是我一直在寻找。谢谢你,alecxe :) – VineetChirania