HTML 未在 Django 文本字段中呈现 [英] HTML not rendering in Django text field

查看:32
本文介绍了HTML 未在 Django 文本字段中呈现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用 Markdown 来避免在我的 wiki 表单中输入 HTML,但由于某种原因,该表单显示的是 HTML 代码而不是预期的格式.

我的视图函数如下:

 from django.shortcuts import render_to_response从 mywiki.wiki.models 导入页面从 django.http 导入 HttpResponseRedirect进口降价def view_page(请求,page_name):尝试:page = Page.objects.get(pk=page_name)除了 Page.DoesNotExist:return render_to_response('create.html', {'page_name':page_name})内容 = 页面内容return render_to_response('view.html', {'page_name':page_name, 'content':markdown.markdown(content)})

这是我的 view.html 模板:

{% 扩展 'base.html' %}{% 加载维基链接 %}{% 区块标题 %}{{page_name}}{% endblock %}{% 块内容 %}<h1>{{page_name}}</h1>{{内容|维基化}}<小时/><a href='/mywiki/{{page_name}}/edit/'>编辑此页面?</a>{% 结束块 %}

这是我的 base.html:

<头>{{% block title %}{% endblock %}<身体><div>菜单:<a href='/mywiki/Start/'>起始页</a>

{% 块内容 %}{% 结束块 %}

我确实安装了 Markdown,我的 Django 版本是 1.4.1 (Mac).

谢谢.

解决方案

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

{{ content|safe }}

I am attempting to use markdown to avoid having to type HTML within my wiki form, but for some reason the form is displaying HTML code instead of the intended formatting.

My view function is as follows:

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)})

This is my view.html template:

{% 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 %}

And this is my 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>

I do have markdown installed, and my Django version is 1.4.1 (Mac).

Thanks.

解决方案

Use Django's safe filter so as for your Html not to be escaped.

{{ content|safe }}

这篇关于HTML 未在 Django 文本字段中呈现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆