2010-08-29 30 views
5

我正在将模型中的内容输出到我的模板,但某些模型字段调用存储在其他模型中的数据。这只发生在几个领域。我想知道使用if标签来评估这个标签是否比在模型中存储django标签更高效。在Django模型中存储和转义Django标签和过滤器

回答this question表示,在模型中存储django标签是一个坏主意,没有给出理由(尽管我认为其中一个原因可能是其他人可能会在数据库中注入一些标签)。假设数据库注入是罕见的,是否有逃避存储在模型中的Django标签和过滤器的方法。

或者更好的是,最有效的方法来处理上述情况,其中几个字段中的一个模型字段调用存储在另一个模型中的字段。

这应该被存放在我的模型

<p>We focus on:</p> 
{% for item in services %} 
{% url service_view item.id as service_url %} 
<ul> 
<li><a href="service_url">{{item.title}}</a></li> 
</ul> 
{% endfor %} 

1.4.3应该导致Django的解析相关的Django的标签,如果模板的一部分

+0

我完全不理解你的问题。 “存储在数据库中的标签”?你能举一些例子吗? – 2010-08-29 14:14:45

回答

1

谢谢内德,我试着实现,但我发现它是相当复杂的,它在便携性方面也是不利的。

但是,我在Django Snippets中找到了我需要的东西(不知道为什么我没有先看到它)。它是一个非常有用的工具,被称为render_as_template

将其设置为自定义标签后,我需要的所有内容都是以{% render_as_template about_view.content %}的形式使用它,并且模型中的标签被渲染为模型。在创建自己的自定义模板和标签available here

0

说明你应该使用inclusion tags然后包括标签只要你想的到的HTML渲染。该模型应该只是为变量生成值,而不是格式化。

+0

这是如何工作的?整个问题案例的动机是在另一个模型的几个领域中包含另一个模型的输出。当我这样做时,我想通过避免一个循环来保持性能,这个循环会继续执行以检查字段是否调用其他模型。为了避免循环,我使用代码将数据保存在字段中,以调用另一个模型的相关字段。 – 2010-09-01 04:49:06