Nested for in table
jodyphelan opened this issue · 4 comments
jodyphelan commented
Describe your problem
I would like to create a table like the example image below. I tried to use a nested for loop like
However this seems to ignore the initial loop and gives this:
Is there a way of using nested loops?
More details about your problem
Here is the code used to render the template:
from docxtpl import DocxTemplate
tpl = DocxTemplate('template.docx')
context = {
'data': [
{'type': 'Fruit', 'names': ['Apple', 'Banana']},
{'type': 'Vegetable', 'names': ['Carrot', 'Onion']},
]
}
tpl.render(context)
tpl.save('output/result.docx')
colorthoro commented
I have the same question. It seems like nested tr loops are not supported yet. Will this be added to the plan? It would be very useful. @elapouya
dukre commented
jodyphelan commented
Amazing thanks @dukre
jodyphelan commented
@dukre thanks for your answer. I thought I could expand your solution to an extra inner loop but it didn't seem to give the desired result. Any suggestions would be appreciated!
The desired table would look like:
The current template looks like this:
But this produces the following:
Here is the code:
from docxtpl import DocxTemplate
tpl = DocxTemplate('template.docx')
context = {
'data': [
{
'type': 'Fruit', 'items': [
{
'name':'Apple',
'colours':[
'green',
'red'
]},
{
'name':'Banana',
'colours':[
'yellow'
]
}
]
},
{
'type': 'Vegetable', 'items': [
{
'name':'Carrot',
'colours':[
'orange'
]
},
{
'name':'Onion',
'colours':[
'white',
'red'
]
},
]
}
]
}
tpl.render(context)
tpl.save('result.docx')