我使用带有kajiki模板的turbogears 2.3.10,我创建了应用程序名称样本并创建了可插入的应用程序名称 plugapp 。 (我在http://turbogears.readthedocs.io/en/latest/turbogears/Pluggable/index.html?highlight=plugin中看到)
我在plugapp(可插拔应用程序)中创建了包名master_view(templates / master_view)和文件master.xhtml。
-plugapp
--templates
--master_view
--master.xhtml
--index.xhtml
在 plugapp (可插拔应用程序)的index.xhtml中,我更改了
<py:extends href="master.xhtml"/>
到
<py:extends href="master_view/master.xhtml"/>
我跑http://localhost:8080/plugapp。它显示错误
TypeError: coercing to Unicode: need string or buffer, NoneType found .
我该如何解决?谢谢。
答案 0 :(得分:0)
错误肯定会更好,但是试图告诉你的是,没有像相对文件名指定的模板,模板在模板目录中查找。 哪个是基本应用程序的模板目录(作为基本应用程序配置适用),而不是可插入模板目录。
由于您将模块插入的应用程序没有templates/master_view/master.xhtml
文件,因此kajiki无法加载它。
每当提到包含在可插拔应用程序中的内容时,您应该使用点分表示法。这样你就可以参考可插拔应用程序的python包。
在这种情况下,您要在__init__.py
目录中创建master_view
文件,并使用py:extends="provaplug.templates.master_view.master"
加载预期的 master.html 文件。
由于您明确指出master_view/master.xhtml
包中包含的provaplug
(其中provaplug
是您的可插拔应用的名称),您将加载您的可插拔应用} p>