如何在Django模板中插入文本文件的内容?

2024-09-19 23:45:18 发布

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

Django 1.7版。我需要在django模板中插入来自模型的文本文件的内容。重要的是,它必须是一个文件,而不是模型的文本字段。 有办法吗? 这是我的模型:

class Model1(models.Model):
   file1 = FilerFileField(null=True, blank=True)
   file2 = FilerFileField(null=True, blank=True)

我尝试了{%include%}标记,但它不起作用。在


Tags: 文件django模型文本模板true内容null
2条回答

{% include %}用于包含模板(将在settings.TEMPLATE_DIRS中搜索),因此它不起作用并不奇怪。在

主要是,您必须从Python代码中读取文件并将其传递到模板的上下文中。这里有三种可能的解决方案:

1/向模型中添加方法以获取FilerFileField的内容

2/编写一个自定义模板过滤器(或标记),它接受FilerFileField并返回文件的内容

3/在视图中读取FilerFileField的内容并将其添加到上下文中

Taginclude并不是要将模型中的内容插入到模板中。有关插入指定模板的内容。您需要编写自定义模板筛选器,该筛选器将读取文件内容并将其返回到模板中:

from django import template

register = template.Library()

@register.filter
def print_file_content(f):
    try:
        return f.read()
    except IOError:
        return ''

并将其用于模板中,如:

^{2}$

或者您可以通过模板上下文传递它。然后只需将文件内容读入视图并将此内容添加到模板上下文字典中。在

相关问题 更多 >