问题标签 [template-tal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 变色龙中的换行
我已经使用金字塔框架构建了一个大型 Web 应用程序。
除其他外,此应用程序允许用户在文本区域表单域中输入文本。然后将该文本保存到数据库中,当然可以再次读取并稍后显示。
为了显示内容,我使用了Chameleon Template Engine。
这工作正常,除了换行符显示不正确(根本不显示)。这可能是因为当通过 Chameleon 显示时,输入到文本区域的换行符不会导致 HTML 中的换行符。如何解决这个问题?
用 -Tags 替换换行符没有帮助,<br>
因为默认情况下,Chameleon 会转义所有 HTML-Tags。我知道可以停用此功能,但我不想这样做以避免跨站点脚本。
caching - sql alchemy + 金字塔,“请求缓存”
我正在制作一个网站,使用金字塔、sqlalchemy 和 chameleon... 在 view.py 上我发送 sqlalchemy:
和变色龙:
但是 sqlalchemy “user.minions.count()” 运行了两次,所以我在模型上添加了这个:
并开始使用“NumFixedMinions”而不是“.count()”,但这使得 _NumFixedMintions 定义,直到我重新启动服务器,我错过了什么吗?或者有没有办法只在请求期间制作一个简单的“缓存”..
ps:这不是真正的代码,因为网站是模块化的,所以很难知道什么时候会被使用两次
plone - Plone 4 Zope 显示特定文件夹 TALES 的内容
问题
我有一个客户希望在他们的搜索页面上显示某个文件夹(包含图像)的全部内容,如果搜索返回 0 结果。该文件夹位于 mysite.com/images
设置:
作为测试环境,我设置了一个具有以下结构的单独站点:
我修改了folder_summar_view
模板,以包含以下代码(我决定修改一个视图,看看我是否可以将它分解成碎片以使其执行我想要的操作):
我所看到的:
我尝试过的事情和进一步的解释
我假设当context/images/getFolderContents
我的图像文件夹中的“对象”返回大脑时,我可以使用tal:repeat
下面的语句遍历每个“对象”。然后将它们显示在我的页面上。
如果我只使用以下代码:
我的输出与上面的“我看到的”部分非常相似:
其中 [...] 是另一个数字
我一直在做一些研究并阅读 Plone Theming 这本书,但我的代码类似于第 169 页tal:repeat
上的示例,似乎唯一的区别是他们没有在大脑上使用它(据我所知)。
我试过这个,虽然它产生了相同的结果(不知道为什么我坚持它不会):
我似乎无法“进入”返回的大脑。我在网上寻找的所有东西都没有太大帮助,我还浏览了atct_album_view
模板folder_listings
以了解是否有用。- 我认为我忽略或遗漏了一些东西。
我偶然发现的第一个链接是 this,但是从那以后我继续前进,尽管相似,但这并不是我想要做的。
他们聊天室里的 Plone 人很友好地给了我这个context/images/getFolderContents
声明,我试图在没有再次寻求帮助的情况下继续前进,但似乎我碰壁了。
更多我尝试过的东西
使用此链接作为灵感,我决定尝试以下方法:
但是当我尝试查看模板时会引发错误。错误的意思是“getFolderContents 大脑没有属性 getURL”——虽然image/Title
显示了文件夹的名称,但这并不是我真正需要的。
我也找到了这个链接,但是因为我正在使用默认搜索,我真的不想编辑 python 脚本,因为我担心它可能会对正常的 Plone 站点搜索产生不利影响。同样在这个链接中,他们似乎正在使用更多的 Python 脚本。- 为了扩展这一点,我不确定这些脚本如何与页面模板“链接”(它们如何知道彼此“交谈”)。
结论
总之,我需要显示位于我网站根目录的名为“images”的文件夹中包含的所有图像,我无法使用getFolderContents
. 除了显示“图像”文件夹的标题或大脑识别(<Products.ZCatalog.Catalog.mybrains object at 0x9d2ddb8>
)之外,我没有运气。欢迎任何帮助或想法!
python - 在 Chameleon 中使用代码块时出现 builtins.NameError
我希望这个片段能够工作:
相反,它失败了:
作为背景,我们的想法是避免每年都更新年份:
macros - 如何在金字塔 / ZPT(变色龙)中使用宏
我想使用带有金字塔+ZPT 引擎(变色龙)的宏。
文档说“一个页面模板可以容纳多个宏”。 http://chameleon.readthedocs.org/en/latest/reference.html#macros-metal
因此我定义了一个文件
macros.pt
:
和一个全局模板main_template.pt
,其中包含定义 slot 的所有 html 内容content
。
progress.pt
以及用于main_template.pt
填充插槽的我的视图模板:
到目前为止,我痛苦地发现,我不能说use-macro="main_template.pt"
是因为 Chameleon 不像 Zope 那样自动加载模板。因此,我必须先添加load:
片段。
来到use-macro="step-0"
. 这会引发 NameError step-0
。我试图用类似的macros.pt
东西预加载,<tal:block tal:define="compile load: macros.pt" />
但这没有帮助。
如何使用宏摘要文件中收集的宏?
html - Zope (ZPT) 重叠标签
我尝试在 Zope 页面模板中使用 TAL 创建打开div
标签条件并关闭div
另一个条件中的标签,但不允许重叠标签。
这是我的代码:
重要的部分是:
这是错误。
我尝试使用 Python 脚本,但它也不起作用。
使用close_div
脚本:
它返回</div>
而不是</div>
如果你想知道我为什么这样做。我有一个需要显示的树结构。由于我(认为我)不能递归地执行此操作,因此我尝试使用 LIFO 列表来模拟它。并且current
是我当前的节点。
我试图实现这一点(节点是dict的dict ...用作树):
任何帮助或建议表示赞赏
plone - 在另一个 tal:repeat 函数中获取 tal:repeat 的索引
如您所见,我有 3 个列表Procedur_Headers
:Diagnoses
和List_Procedur
.
Procedur_headers
给出了我的表格的标题,
Diagnoses
给出了一个过程的特定 id,并且
List_Procedur
是一个列表(查询)的列表,其中包含了我需要的所有数据。现在我想做的是在
我可以在我的表中获取我的数据。我已经可以得到索引:
但我不能在索引的地方这样做。有没有人有这样的解决方案?
html-table - 使用 zpt 给每个表一个新的 id
我正在使用该tal:repeat
语句在另一个表中生成表。可悲的是,我不知道如何在生成时为每个表赋予唯一的 id。我怎样才能做到这一点?
我正在尝试使用:
和
但我无法让它工作。
例子:
ajax - 使用 zpt 和 ajax 作为更新动态填充表
我正在金字塔中创建一个网络项目,我想每隔几秒更新一次表格。我已经决定使用 ajax,但我遇到了一些问题。
在客户端,我使用以下代码:
金字塔侧:
现在我想使用 tal:repeat 语句将这些数据放入带有 zpt 的表中。我知道如何在页面加载时将此数据放入表中,但我不知道如何将其与 ajax 结合使用。
anny1 可以帮我解决这个问题吗?非常感谢。
plone - 用于获取 Plone 中个人首选项字段内容的 Python 脚本
我在我的 Plone 4 站点中有一个自定义注册和 @@personal-preferences 页面,它有一些额外的字段,例如供人们粘贴其社交网络链接的区域以及他们的公司职位 - 它还显示他们的日期在网站上注册。(我使用了collective.examples.userdata来完成这个)
我可以使用以下定义成功地在页面模板中引用这些字段:
我正在尝试编写一个 Python 脚本,它将获取最后一个定义python:user.getProperty('regday')
并做一些数学运算来显示他们在网站上注册了多长时间。
我的脚本正在调用 memberLength 并且在我的自定义文件夹中,我一直在使用以下方法调用它:
我已经尝试了很多事情,但经常遇到回溯错误,所以我不太确定如何告诉 Python 获取这些字段详细信息。我尝试了以下操作(下面的示例只是我试图让 python 获取字段信息):
Python脚本:
但是,它返回一个包含当前用户基本信息(用户名、描述等)的字典,那里对我没有任何用处——我的自定义字段都没有出现在这个字典中。
上面返回我的“找不到”消息,所以这也不起作用,下面的脚本也是如此:
我试过这个:
但是我收到了一条AttributeError: user
回溯消息。
我也尝试了这个 tal 声明:context/userRegDay/membershipLegth
但这给了我一个错误,所以我尝试了 Python 替代方案context.userRegDay.membershipLegth()
——但它们没有用。
我上面的所有字段都存在于ZMI 页面的Properties
选项卡中。portal_memberdata
谷歌在这里并没有给我太多帮助,我只能找到这个页面,但据我所知,它并没有真正涵盖我正在尝试做的事情。
谁能告诉我如何将我的 UserRegDay 变量传递给我的 Python 脚本?还是我对这一切都错了?
提前向任何有经验的 Plone 人道歉,他们的血压可能会因阅读我的尝试而升高。
非常感谢。