8

我正在尝试使用降价来避免在我的 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)。

谢谢。

4

2 回答 2

22

使用 Django 的安全过滤器,以免您的 Html 被转义。

{{ content|safe }}
于 2012-09-13T23:36:53.313 回答
1
{% autoescape off %}
{{content|wikify}}
{% endautoescape %}

也许 ...

于 2012-09-13T23:35:47.130 回答