我正在将内容从我的模型输出到我的模板,但是一些模型字段调用存储在其他模型中的数据。这只发生在少数领域。我想知道与将 django 标签存储在模型中相比,使用 if
标签来评估它是否更有效。
this question 的答案说在模型中存储 django 标签是一个坏主意而没有给出理由(尽管我认为原因之一可能是其他人可能会在数据库中注入(inject)一些标签)。假设数据库注入(inject)很少见,是否有一种方法可以转义存储在模型中的 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 %}
输出它应该导致 django 像模板的一部分一样解析相关的 django 标签
最佳答案
谢谢 Ned,我尝试实现它,但我发现它非常复杂,而且在可移植性方面也有缺点。
但是,我在 Django Snippets 找到了我需要的东西(不知道为什么我没有先看那里)。它是一个非常有用的实用程序,称为 render_as_template .
将其设置为自定义标签后,我需要做的就是以 {% render_as_template about_view.content %}
的形式使用它,模型中的标签被渲染为模型。
关于创建您自己的自定义模板和标签的说明 available here
关于python - 在 Django 模型中存储和转义 Django 标签和过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3594909/