Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果jinja标记是字符串格式,那么如何在django和jinja2中使用它?_Python_Django_Jinja2 - Fatal编程技术网

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)
我想做的是:

  • 检索关联的ReportTemplate及其
    标记
    字段值
  • 将报告的
    数据
    字段值通过
    标记
    值放入1中,该值由jinja2标记写入
  • 使用weasyprint并将2中的数据填充标记打印为pdf
  • 我被困在第二步

    由于我检索到的标记是字符串格式,如何使用我拥有的数据运行它?

    从中调整,它可以像

    >>> template = Template(report.markup)
    >>> template.render(report=report)
    <html>...
    

    假设您的模板希望将整个报告作为
    报告
    模板参数来获取。

    您为什么要分部分提问(这里是)?原因是在我寻求生成灵活报告的过程中存在多个挑战。因此我把它分成了几个小问题。
    >>> template = Template(report.markup)
    >>> template.render(report=report)
    <html>...
    
    >>> final_markup = template.render(report=report)