django模板,标签不能渲染到变量

时间:2013-04-02 23:01:13

标签: django shell templates

我在模型上有一个属性,它渲染模板并将其设置为下一个模板可用的上下文的一部分,这里是方法:

models.py:

@property
def detail_body_rendered(self):
    ctx = self.context()

    link_ctx = template.Context({'the_message': self.message})
    render_url = template.Template("{% load url from future %}<a href=\"{% url 'message_redirect' 'message' the_message.pk %}\">Click Here</a>").render(link_ctx)
    ctx['link'] = render_url

    return template.Template(self.message.detail_body).render(ctx)

如果通过模板系统发送返回的值,则此方法很有用:

inbox.html:

...
<div class="detail_message_body">{{ current_message.detail_body_rendered }}</div>
...

一切都按预期发生,detail_body_rendered属性用上下文替换存储在数据库中的标签,并在页面上显示链接。耶。

它也适用于shell。但是,如果我在其他任何地方都有一个消息对象,并请求该属性,它将在其中包含模板的行上无声地失败。具体来说,因为那里有%的迹象。如果我把它们拿走,没问题。

所以我的问题是双重的,当我在除模板文件或shell之外的任何地方请求它时,为什么它会爆炸,我如何使错误消息详细,以便我可以真正看到为什么它在终端中窒息窗口?

0 个答案:

没有答案