HTML Django的文本字段不渲染(HTML not rendering in Django t

2019-07-31 14:31发布

我试图用降价来避免到我的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)。

谢谢。

Answer 1:

使用Django的安全过滤器 ,从而为你的HTML不被转义。

{{ content|safe }}


Answer 2:

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

也许 ...



文章来源: HTML not rendering in Django text field