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>

マークダウンがインストールされており、Django のバージョンは 1.4.1 (Mac) です。

ありがとう。

4

2 に答える 2

22

Html がエスケープされないように、Django の安全なフィルターを使用します。

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

多分 ...

于 2012-09-13T23:35:47.130 に答える