Я использую Python-Docx-Template для динамического создания адресных этикеток, которые можно напечатать на этикетках Avery. Я нашел правильный шаблон таблицы в MS Word и вставил цикл FOR для просмотра адресов. В каждой строке по 3 адреса, поэтому я установил такой код:
from docxtpl import DocxTemplate
tpl=DocxTemplate('templates/address_labels.docx')
context = {
'tbl_contents' : [
{'addrs':[
{'addr_count':1,'first':'Peyton','last':'Manning','addr1':'123 Cherry St.','city':'Denver','state':'CO','zip':'12345'},
{'addr_count':2,'first':'Patrick','last':'Mahomes','addr1':'123 KC BBQ Blvd','city':'Kansas City','state':'MO','zip':'12345'},
{'addr_count':3,'first':'Tom','last':'Brady','addr1':'123 New England Cir','city':'Boston','state':'MA','zip':'12345'}]},
{'addrs':[
{'addr_count':1,'first':'Drew','last':'Brees','addr1':'123 Nola Way','city':'New Orleans','state':'LA','zip':'12345'},
{'addr_count':2,'first':'Phillip','last':'Rivers','addr1':'123 Beachside Dr.','city':'Los Angeles','state':'CA','zip':'12345'},
{'addr_count':3,'first':'Kyler','last':'Murray','addr1':'123 Dusty Rhoads Dr','city':'Phoenix','state':'AZ','zip':'12345'}
]}
]
}
tpl.render(context)
tpl.save('output/addr_labels.docx')
Мой шаблон слова:
Я делаю таблицу таким образом, потому что метки адресов Avery имеют тонкую ячейку таблицы между большей ячейкой, где идет адрес. Это помогает с форматированием. Если я удалю оператор IF, все будет работать нормально, но в конце будет дополнительная маленькая ячейка таблицы, потому что я повторяю большую ячейку таблицы и тонкую ячейку таблицы для всех трех адресов в строке. Это не ОГРОМНАЯ проблема, но мне бы очень хотелось, чтобы эта тонкая ячейка таблицы НЕ вводилась, если addr_count == 3
(я пробовал addr_count == '3'
и addr_count == 3
, и наличие кавычек вокруг числа не имело никакого значения.
Вот ошибка, которую я получаю.
Кто-нибудь знает, как использовать оператор IF, вложенный в цикл FOR в python-docx-template?
endif
тегов. Глядя на шаблон, кажется, что во второмif
выражении могли быть ошибки. Например, двоеточие в конце не нужно. Во-вторых, похоже, что междуif
иendif
нет никакого содержимого. - person Ahndwoo   schedule 05.09.2019{% endif %}
войдет в маленькую ячейку, а не после нее? - person Ahndwoo   schedule 05.09.2019