第一次在这里发帖,对Django很陌生,提前抱歉。
我试图将我的模型中的名称字段插入我的 html 模板,然后我将将其转换为 pdf。
涉及 html 到 pdf 转换的所有内容都在工作,我似乎无法从我的模型中获取名称字段以在渲染时将其放入html_template中。
我尝试在render_to_pdf视图中的context_dict中添加"name":name,但这不起作用。
我认为我可能遗漏了一些东西。
pdf_template.html
{% block content %}
<div class="container">
<div class="row">
<p> **{{name}}** </p>
</div>
{% endblock %}
models.py
class User(models.Model):
username = models.CharField(max_length = 20, primary_key=True)
name = models.CharField(max_length = 20)
def __str__(self):
return self.name
views.py
def render_to_pdf(template_src, context_dict={}):
template = get_template(template_src)
html = template.render(context_dict)
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue(), content_type='application/pdf')
return None
目前还不清楚你想做什么/问什么。
如果要列出所有用户名,可以这样做:
def listView(req):
users = User.objects.all
return render(request, 'home.html', {'names': users})
然后在您的模板中:
<div class="container">
{% for name in names%}
<p>{{ name.username }}</P
</div>
这就是您需要构建函数并使用当前设计调用它的方式。如果名称为 none 或空字符串,则不会显示。
def render_to_pdf(template_src, context_dict=None):
if context_dict is None:
context_dict = {}
template = get_template(template_src)
html = template.render(context_dict)
...
render_to_pdf('template/path/...', {'name': "some name"})