Skip to main content
 首页 » 编程设计

python之在 TextField 中呈现 Django 应用程序

2025年05月04日34cloudgamer

我正在创建一个应用程序来显示文章。在我的模型中,我有一个包含文章内容的 TextField。

现在我希望能够在我的文章中呈现另一个应用程序。假设我有一个投票应用程序,我想在文章中间显示一个投票。我该怎么做?

我尝试在帖子中放置一个 {% render_poll 42 %},但正如预期的那样,它只会在生成的页面中显示它。

我是否应该创建某种标记(比如 [poll=42])并在显示呈现的 html 页面之前解析它? (我使用 markdown 库,也许我可以扩展它。)我怎样才能保持良好的“django 友好”方式?我希望在管理面板中时,我可以轻松地在文章中插入民意调查(或其他应用程序)。

请您参考如下方法:

你可以 compile TextField 字符串作为模板。即:

from django.db import models 
from django.template import Template, Context 
 
 
class YourModel(models.Model): 
    body = models.TextField() 
 
    def render_body(self, context=None): 
        template = Template(self.body) 
        context = context or {} 
        context['object'] = self 
        return template.render(Context(context)) 

然后在实际模板中,您可以使用 {{ your_model.render_body }} 而不是 {{ your_model.body }}。