Python 如果jinja标记是字符串格式,那么如何在django和jinja2中使用它?
这个问题的答案是分开的 我有一个Python 如果jinja标记是字符串格式,那么如何在django和jinja2中使用它?,python,django,jinja2,Python,Django,Jinja2,这个问题的答案是分开的 我有一个报告和一个报告模板 +----+----------+---------------+-------------+ | id | title | data | template_id | +----+----------+---------------+-------------+ | 1 | report 1 | {data: [...]} | 1 | +----+----------+---------------
报告
和一个报告模板
+----+----------+---------------+-------------+
| id | title | data | template_id |
+----+----------+---------------+-------------+
| 1 | report 1 | {data: [...]} | 1 |
+----+----------+---------------+-------------+
reports table
+----+-----------+---------------+------------+
| id | title | markup | css |
+----+-----------+---------------+------------+
| 1 | template1 | <doctype!>... | body {.... |
+----+-----------+---------------+------------+
templates table
这些是模型:
class ReportTemplate(models.Model):
title = models.CharField(max_length=50)
markup = models.TextField(default = 'markup here...')
styles = models.TextField(default = 'styles here...')
# __unicode__ on Python 2
# __str__ on Python 3
def __unicode__(self):
return self.title
class Report(models.Model):
title = models.CharField(max_length=50)
commodity = models.CharField(max_length=10)
date = models.DateTimeField('date traded')
trade_period = models.CharField(max_length=10, default='open')
quantity_cutoff = models.IntegerField(default=0)
printed = models.BooleanField(default=0)
datetime_email_sent = models.DateTimeField('date email sent', blank=True, null=True)
data = models.TextField(default = 'data here...')
template = models.ForeignKey(ReportTemplate)
我想做的是:
标记字段值
数据
字段值通过标记
值放入1中,该值由jinja2标记写入>>> template = Template(report.markup)
>>> template.render(report=report)
<html>...
假设您的模板希望将整个报告作为
报告
模板参数来获取。您为什么要分部分提问(这里是)?原因是在我寻求生成灵活报告的过程中存在多个挑战。因此我把它分成了几个小问题。
>>> template = Template(report.markup)
>>> template.render(report=report)
<html>...
>>> final_markup = template.render(report=report)