我在views.py中加载了一个txt文件,并在上面做了一些工作(现在它只是按段落划分,但稍后会有更多的工作完成)。
在本文档中,我有一些Django模板标记{{ user.firstName }}等等。
我将此文档发送到模板以获得它的HTML添加,等等。但是它不会呈现标签。我知道Django只加载了一次模板,并将其存储在一棵树中以加快速度。我只是找不到解决办法。我可以预加载文档,然后运行解析器吗?我可以在view.py中添加HTML标记并在解析之前将其发送到模板中吗?
任何想法或想法都会很棒。
下面是我的代码:
View.py
class DocumentReview(TemplateView):
template_name = 'paperwork\document.html'
def get_context_data(self, **kwargs):
context = super(DocumentReview, self).get_context_data(**kwargs)
context['user'] = {'firstName': 'x', 'lastName': 'y'}
context['document'] = self.get_document()
return context
def get_document(self):
module_dir = os.path.dirname(__file__) # get current directory
file_path = os.path.join(module_dir, 'documents\sample.txt')
document = {}
with open(file_path, 'r') as fp:
data = fp.read()
document = data.split("\n\n")
return document以下是sample.txt:
Hello {{ user.firstName }} {{ user.lastName }},
This is a sample txt file.这是document.html
{% for para in document %}
<p>{{ para }}</p>
{% endfor %}发布于 2017-04-20 08:38:54
您必须使用模板加载器模块,并更改get_document函数:
from django.template.loader import render_to_string
def get_document(self, context):
data = render_to_string('documents\sample.txt', context)
return data.split("\n\n")你这样称呼它:
context['document'] = self.get_document(context)在此之前,您必须修改settings.TEMPLATES,以便加载程序找到文件documents\sample.txt。
https://stackoverflow.com/questions/43507048
复制相似问题