Here's your original method:

>>> links = "<li><a href='app_path/view/user_a'>user_a</a></li>"
>>> print response.render('invite_friend.html', dict(links=links))
<html>
Hello there, 
<ul>
&lt;li&gt;&lt;a href=&
#x27;app_path/view/user_a&#x27;&gt;user_a&lt;/a&gt;&lt;/li&gt;
<ul>
</html>

As you can see, the HTML tags in links are getting escaped in the call to 
response.render(), so the HTML displays literally in the output instead of 
being rendered as HTML. Now, here it is wrapping the links HTML in XML():

>>> links = XML("<li><a href='app_path/view/user_a'>user_a</a></li>")
>>> print response.render('invite_friend.html', dict(links=links))
<html>
Hello there, 
<ul>
<li><a href='app_path/view/user_a'>user_a</a></li>
<ul>
</html>

Now the links HTML is being rendered properly. One problem I notice, 
though, is that your have <ul> instead of </ul> to close the list -- maybe 
that's why it's still not rendering as you expect.

Anthony

On Tuesday, June 5, 2012 5:17:08 AM UTC-4, Sushant Taneja wrote:
>
> This does not work. Still facing the same issue.
>
> On Monday, June 4, 2012 8:57:34 PM UTC+5:30, Anthony wrote:
>>
>> By default, the template engine escapes everything -- to avoid that, do:
>>
>> links = XML("<li><a href='app_path/view/user_a'>user_a</a></li>")
>>
>> See http://web2py.com/books/default/chapter/29/5#XML.
>>
>> Anthony
>>
>

Reply via email to