django 模板关闭特殊字符转化

Posted 林肯公园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 模板关闭特殊字符转化相关的知识,希望对你有一定的参考价值。

    默认情况下,在django admin管理界面和页面中,如果输出的对象中包含html特殊字符,在django中默认的处理方式是将对象中的HTML特殊字符转化,例如会将 "<" 转化为 "&lt;"  等等。

HTML解决问题的办法:

    如果在渲染模板时,想要输出HTML特殊字符,在模板页使用  {% autoescape off %}{{不需要特殊字符转换的字符串}}{% endautoescape %} 来关闭:

 

示例:

{% autoescape off %}

    {{ unescape_value }} 

{% endautoescape %}

 

在django admin管理界面列表中,输出HTML特殊字符示例:

models.py:
##################

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    color_code = models.CharField(max_length=6)

    def colored_name(self):
        return <span style="color: #%s;">%s %s</span> % (self.color_code, self.first_name, self.last_name)

    colored_name.allow_tags = True



admin.py:
##################

from django.contrib import admin
from . import models


class PersonAdmin(admin.ModelAdmin):
    list_display = (first_name, last_name, colored_name)

admin.site.register(models.Person, PersonAdmin)

 

以上是关于django 模板关闭特殊字符转化的主要内容,如果未能解决你的问题,请参考以下文章

如何在Django视图中使用for循环返回每次迭代[关闭]

使用带有特殊字符的 Django 的 url 模板标签

当键具有特殊字符时,如何进行 Django 模板字典查找? [复制]

过滤器和模板变量

Django之模板

如何在 Django 中显式重置模板片段缓存?