重写Django include template标记以从数据库读取html

2024-06-26 13:58:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写自己的自定义Djangoinclude template tag,从数据库读取要呈现的文本,而不是从磁盘读取HTML文件。像这样:

{% dbinclude 'template_id_from_database' with foo='bar' %}

将引发一个查询,以从数据库中获取一些包含变量的HTML文本,这些变量将被替换为它们的值,并用关键字传递víA。你知道吗

这将是我的方法,但阅读文档,似乎有一个更简单的方法。与传递给include标记的变量相关,它表示:

The variable may also be any object with a render() method that accepts a context. This allows you to reference a compiled Template in your context.

因此,我不必编写自己的include template标记,只需传递模板对象(或子类)的实例作为参数。在那个例子中,我可以从数据库中读取要呈现的文本。我还是不知道怎么做,但概念就在这里。你知道吗

因此,问题是:这些方法中有哪些更适合于Django良好实践,如果有的话?


Tags: 文件方法标记文本id数据库includehtml