首页 > 解决方案 > 是否有正确的方法来为 Pyramid 中的资产规范定义附加包?

问题描述

我有几个金字塔项目,我将它们组合成一个带有 jinja 文件的项目,这些文件具有以下行:

{% extends 'some_project:templates/layout.jinja2'%}

{% extends 'other_project:templates/layout.jinja2'%}

如果我可以简单地将所有子项目文件放入子文件夹中,然后注册一个额外的资产规范,这样some_project:templates/就可以了combo_projects:templates/some_project/templates,我不必接触任何模板。

我加了...

config.override_asset(to_override='other_project:templates/', override_with='combo_projects:templates/some_project/templates'

...最初抱怨缺少 module other_project,所以我做了一个虚拟模块,一切似乎都有效,但我担心我滥用了系统并且正站在纸牌屋上。

有一个更好的方法吗?阅读有关资产规范的文档https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/assets.html#asset-specifications或其中的覆盖链接并没有给我任何见解。

显然我也可以更新所有文件,我可能会这样做,但我想知道我所做的是否安全,以及是否有更好的方法来完成同样的事情。

标签: pythonpyramid

解决方案


在 Pyramid 中,需要一个真正的模块前缀来覆盖资产,仅此而已。既然您已经创建了一个模块并保留了该名称空间,那么您所做的并不是我认为的系统滥用。


推荐阅读