1

我有一个 CMS,它采用一些动态内容并使用标准模板呈现它。但是我现在在动态内容本身中使用模板标签,所以我必须做一个 render_to_string,然后将其结果作为上下文变量传递给 render_to_response。这似乎很浪费。

有什么更好的方法来做到这一点?

4

2 回答 2

2

“这似乎很浪费” 为什么会这样?

每个模板都是标签和文本的混合体。在您的情况下,模板引擎已经访问了一些文本块。所以呢?一旦它被转换,它只是文本,并且非常非常快地通过下一个模板引擎。

你有具体的性能问题吗?您没有满足您的交易吞吐量要求吗?有没有具体问题?

代码是不是太复杂了?很难维护吗?会一直断吗?

我认为你的解决方案是足够的。从调试的角度来看,我不确定动态内容中的模板标签是否良好,但从基本的“模板渲染”角度来看,它很好。

于 2009-01-22T11:28:28.527 回答
0

你在做什么听起来不错,但可能会问一个问题:为什么不将模板标签引用直接放在你的模板中,而不是手动渲染它们?

<div>
    {% if object matches some criteria %}
        {% render_type1_object object %}
    {% else %}
        {% render_type2_object object %}
    {% endif %
    ... etc ...
</div>

或者,更好的是,有一个用于呈现对象(或对象列表)的中央模板标签,它封装了对象类型到模板标签的映射。然后,您的所有模板都只需引用一个模板标签,模板本身不需要类型知识。

关键是您正在迁移有关如何将单个对象渲染到视图之外的知识。

于 2009-01-22T12:39:47.227 回答