HTML不在Django文本字段中呈现

时间:2012-09-13 23:32:59

标签: python django django-forms markdown

我正在尝试使用markdown来避免在我的wiki表单中键入HTML,但由于某种原因,表单显示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>

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

感谢。

2 个答案:

答案 0 :(得分:19)

使用Django的safe filter,以便您的Html不被转义。

{{ content|safe }}

答案 1 :(得分:1)

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

也许......