【问题标题】:HTML not rendering in Django text fieldHTML 未在 Django 文本字段中呈现
【发布时间】:2012-09-07 03:08:18
【问题描述】:

我正在尝试使用 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)。

谢谢。

【问题讨论】:

标签: python django django-forms markdown


【解决方案1】:

使用 Django 的 safe filter 以免你的 Html 被转义。

{{ content|safe }}

【讨论】:

  • 你能链接过滤器吗? {{content|wikify|safe}}
  • 是的,我刚刚去看了文档,他们同意你的看法(+1 比我的答案更简洁:P)
【解决方案2】:
{% autoescape off %}
{{content|wikify}}
{% endautoescape %}

也许……

【讨论】:

    猜你喜欢
    • 2016-04-01
    • 2016-06-02
    • 2023-03-15
    • 2019-11-17
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2021-12-30
    • 2012-03-05
    相关资源
    最近更新 更多