花了好几天的时间,一直被这个问题折磨,在国内论坛上和国外论坛上都没有找到什么解决方法,先说一下我的开发情况吧。(省流版只看标红标粗部分就行)
和上一篇文章一样,在顺利读入表格文字并填入到文档模板里,批量输出理想文档后,我又想在源代码基础上加入往文档标签里添加图片的功能,故我的原代码如下:
思路讲来也简单,就是context里多填入了图片而已,但就上面的代码里一个小小的错误,就导致了一个超级麻烦的错误,如下图:
'current_rendering_part'这玩意可是怎么查都查不到的,看了docxtpl库的源代码也没看出啥结果,反反复复几天,今年终于解决这个问题,其实解决方法很简单,删除多余的某一个语句即可,见下图标识(绿色圆圈):
这个问题的错误就是,我在之前的代码里(第13行,见下图)就把已添加标签的文档导入了,所以在我后续往context里添加图片资源的时候,必然会调用已添加标签的文档(即在InLineImage函数中添加一个tpl参数),但我在后续装填标签的时候(即第129行代码),我又在第128行又导入了一个标签文档,这下就乱套了,第129行代码往文档里的标签添加内容的时候,就搞不清图片到底是要给哪一个文档的标签添加内容了,所以一旦前面导入了已添加标签的文档模板,后续如果再导入一个一模一样变量名的文档模板,就会出图片文件不知道该加入哪个文档标签的情况,也就是'NoneType' object has no attribute 'current_rendering_part'的报错问题。一旦删除了会产生歧义的代码,就没啥问题了。