2012-09-13 4 views
5

マークダウンを使用してwikiフォームにHTMLを入力しないようにしようとしていますが、何らかの理由により、意図したフォーマットではなくHTMLコードが表示されます。DjangoのテキストフィールドにHTMLがレンダリングされない

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> 

マークダウンがインストールされており、私の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) –

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

多分...