首页 > 解决方案 > python docxtpl - 无法创建动态表单

问题描述

我一直在尝试在 word 中创建一个动态表,但创建的文件包含除选项标签内的列表之外的所有内容。我已经尝试了很多东西,但无法让它工作。

from docxtpl import DocxTemplate

from registration.models import stuff


def create_doc(options, model, file='resources/stuff.docx'):
    doc = DocxTemplate(file)
    log = stuff(options_object=model)
    log.save()
    l = []
    for i in range(1, len(options) + 1):
        x = {}
        x['number'] = i
        x['course'] = options[i - 1]
        l.append(x)
    context = {
        'name': model.name,
        'reg_no': model.regno,
        'roll_no': model.rollno,
        'rank': model.student_rank,
        'course': model.alloted_to,
        'cat': model.alloted_cat,
        'options': l
    }
    doc.render(context)
    doc.save(f'media/request_{model.rollno}.docx')

模板 输出

标签: pythondjangoms-word

解决方案


我通过使用与“选项”不同的名称来解决它。我猜它与以某种方式传递的参数混淆并导致问题。


推荐阅读