如何解决Django 2.2'SafeText'对象没有属性'get'
我在一个项目中使用Django 2.2。我正在推出一个额外的轻量级应用程序,该应用程序允许用户修改模板中使用的原始HTML。
这是我为此编写的函数的简化示例:
def show_page(request):
from django.template import Context,Template
template = Template("<h3>My name is {{ my_name }}.</h3>")
context = Context({"my_name": "Adrian"})
return template.render(context) # <- Django barfs at this line
我得到标题中显示的异常:
在/ show-page'SafeText'对象上的AttributeError没有属性'get'
如何解决此错误,以便可以正确显示页面?
解决方法
假设show_page
是Django视图,您应该返回一个Response
对象,而不是模板字符串。
通过添加以下内容来更改视图:
from django.http import HttpResponse
return HttpResponse(template.render(context))
,
来自Django documentation
您编写的每个视图都负责实例化,填充和返回
HttpResponse
。
当前,您返回的是django.utils.safestring.SafeString
,它只是一个子类化的字符串
一个str子类,已为HTML专门标记为“安全” 输出 目的。
return HttpResponse(template.render(context))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。