django-markupfield returns 字符串
django-markupfield returns string
我正在尝试设置一个 Django 应用程序,它的模型中有一个 MarkupField,如下所示:
from django.db import models
from markupfield.fields import MarkupField
class Recipe(models.Model):
instructions = MarkupField(default_markup_type='markdown')
然后我在 Jinja2 模板中呈现该字段,如下所示:
{% if recipe.instructions %}
{{ recipe.instructions }}
{% else %}
No instructions have been added yet.
{% endif %}
markdowned 文本的呈现完美无瑕,但它作为字符串放置在 DOM 中,因此浏览器不会解释 HTML 标签,就像您在此处看到的那样:
我不觉得我错过了 django-markupfield 文档中的相关内容,但不知何故我需要摆脱这种字符串表示形式。
你们有人知道吗?提前致谢。
感谢@doru 的建议,我偶然发现了 Jinja2 文档并找到了自动转义语句:
{% autoescape off %}{{ recipe.instructions }}{% endautoescape %}
这个对我有用。
甚至可以通过将 autoescape
选项设置为 False
使其在全球范围内工作。
{
'BACKEND': 'django_jinja.backend.Jinja2',
...
'OPTIONS': {
'autoescape': False,
...
}
},
我正在尝试设置一个 Django 应用程序,它的模型中有一个 MarkupField,如下所示:
from django.db import models
from markupfield.fields import MarkupField
class Recipe(models.Model):
instructions = MarkupField(default_markup_type='markdown')
然后我在 Jinja2 模板中呈现该字段,如下所示:
{% if recipe.instructions %}
{{ recipe.instructions }}
{% else %}
No instructions have been added yet.
{% endif %}
markdowned 文本的呈现完美无瑕,但它作为字符串放置在 DOM 中,因此浏览器不会解释 HTML 标签,就像您在此处看到的那样:
我不觉得我错过了 django-markupfield 文档中的相关内容,但不知何故我需要摆脱这种字符串表示形式。
你们有人知道吗?提前致谢。
感谢@doru 的建议,我偶然发现了 Jinja2 文档并找到了自动转义语句:
{% autoescape off %}{{ recipe.instructions }}{% endautoescape %}
这个对我有用。
甚至可以通过将 autoescape
选项设置为 False
使其在全球范围内工作。
{
'BACKEND': 'django_jinja.backend.Jinja2',
...
'OPTIONS': {
'autoescape': False,
...
}
},