Das Problem besteht darin, dass docxtpl nach dem ersten render()-Aufruf mit einem Teilkontext alle Jinja2-Variablen und -Blöcke entfernt, die nicht bereitgestellt wurden. was es unmöglich macht, die verbleibenden Platzhalter später zu füllen.
Hier ist ein vereinfachtes Beispiel:
Code: Select all
import re
from docxtpl import DocxTemplate
# First render
doc = DocxTemplate("template.docx")
doc.render({
"TABLE": [
{"a": 1, "b": 4},
{"c": 3, "d": 7}
],
})
# Second render
doc.render({
"ANOTHER_TABLE": [
{"a": 5, "b": 7},
{"c": 5, "d": 5}
],
})
doc.save("_generated.docx")
Frage:
Gibt es eine Möglichkeit, mehrere partielle render()-Aufrufe mit docxtpl ohne Stripping durchzuführen? unaufgelöste Variablen oder Blöcke?
Gibt es alternativ eine bekannte Problemumgehung (z. B. das Einfrieren gerenderter Teile, die Verwendung von Platzhalterumleitungen oder eine andere Technik), die es ermöglicht, eine Vorlage in mehreren Schritten zu verarbeiten?
Mobile version