1
如何让Django模板呈现模型TextField字段中包含的模板标签?模型文本字段中的模板标签
例如,具有在模型字段此内容:
object.description = "We have all the links here: {% url 'list' %}"
它只是显示不处理网址标签字段内容,我该怎么处理呢?
(之前被标记为重复,this question没有接听)。
如何让Django模板呈现模型TextField字段中包含的模板标签?模型文本字段中的模板标签
例如,具有在模型字段此内容:
object.description = "We have all the links here: {% url 'list' %}"
它只是显示不处理网址标签字段内容,我该怎么处理呢?
(之前被标记为重复,this question没有接听)。
您可以使用自定义模板标签做到这一点,我做了以下。
# blog_tags.py
from django.template import Context, Template
from django import template
register = template.Library()
class RenderCustom(template.Node):
@classmethod
def handle_token(cls, parser, token):
tokens = token.split_contents()
field = tokens[1]
return cls(parser.compile_filter(field))
def __init__(self, field):
self.field = field
def render(self, context):
render_field = self.field.resolve(context)
render_template = Template(render_field)
rendered = render_template.render(Context())
return rendered
@register.tag
def render_this(parser, token):
return RenderCustom.handle_token(parser, token)
您的模板
这样做:
# view_post.html
{% load blog_tags %}
<h1>{{ post.title }}</h1>
{{ post.content }}
<hr>
{% render_this post.title %}
它会返回是这样的:
# The rendered page
Lol {% url 'admin:index' %}
The content
Lol /admin/