2012-09-13 33 views
5

我試圖使用markdown來避免必須在我的wiki表單中鍵入HTML,但出於某種原因表單顯示HTML代碼而不是預期的格式。HTML在Django文本字段中不呈現

我的看法功能如下:

from django.shortcuts import render_to_response 
from mywiki.wiki.models import Page 
from django.http import HttpResponseRedirect 
import markdown 


def view_page(request, page_name): 
    try: 
     page = Page.objects.get(pk=page_name) 
    except Page.DoesNotExist: 
     return render_to_response('create.html', {'page_name':page_name}) 

    content = page.content  
    return render_to_response('view.html', {'page_name':page_name, 'content':markdown.markdown(content)}) 

這是我view.html模板:

{% extends 'base.html' %} 
{% load wikilink %} 

{% block title %}{{page_name}}{% endblock %} 

{% block content %} 
     <h1>{{page_name}}</h1> 
     {{content|wikify}} 
     <hr/> 
     <a href='/mywiki/{{page_name}}/edit/'>Edit this page?</a> 

{% endblock %} 

這是我base.html文件:

<html> 
    <head> 
     <title>{{% block title %}{% endblock %}</title> 
    </head> 
    <body> 
<div> 
Menu: <a href='/mywiki/Start/'>Start Page</a> 
</div> 
     {% block content %} 
     {% endblock %} 
    </body> 
</html> 

我做安裝了markdown,我的Django版本是1.4.1(Mac)。

謝謝。

+0

https://stackoverflow.com/questions/2080559/disable-html-escaping-in-djangos-textfield – ammarx

回答

16

使用Django的safe filter,以便爲您的HTML不被轉義。

{{ content|safe }} 
+1

可以要鏈接的過濾器? '{{content | wikify | safe}}' –

+2

是的。據我所知,這是可能的。 – thikonom

+0

是的,我剛剛去看了看文檔,他們同意你的觀點(+1比我更簡潔的答案:P) –

1
{% autoescape off %} 
{{content|wikify}} 
{% endautoescape %} 

也許......