ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python-将Plone联系表单转换为main_template.pt

2019-11-02 07:59:24  阅读:211  来源: 互联网

标签:python plone


我正在尝试使用联系表单,该联系表单已添加到我网站的main_template中.我这样做是为了使在this site上的“获取联系”导航按钮中显示的功能可以在工作簿设置中使用.我这样做的方法是稍微修改contact-info.cpt使其成为一个宏,然后在main_template.pt中使用该宏.尝试查看网站上的任何页面时都会收到LocationError,除非我从contact-info.cpt中删除tal:define =“ errors options / state / getErrors”行.

This是我在代码中使用该行时遇到的错误.如果我删除该行,页面将呈现并实际上完全符合我想要的样子,但是在提交表单时会出错. This是这种情况下的错误.我基本上在这两种情况下都很困惑,不胜感激.

UPDATE(我使用的解决方案):

只是想发布有关我实际上是如何工作的更新.马丁·彼得斯(Martijn Pieters)提供的信息对于理解为什么不起作用非常有帮助,但是我真的不打算从那里开始工作.我最终还是依靠jQuery来使它在site_actions和自定义下拉列表中起作用.我将表单的内容包装在< metal:main>之间.我给了一个简单的ID“ contact-info”的div标签.然后在主模板中,我还输入了一个通用div,其简单ID为“ load-area”.最后一个难题是将我的contact.js文件更改为contact.js.pt并输入以下3行:

  <tal:block define="portal_url context/@@plone_portal_state/portal_url">
  jq('#load-area').load('<span tal:replace="portal_url"></span>/contact-info #contact-info');
  </tal:block>

以为我应该发布此邮件,以防以后可以帮助其他任何人.

解决方法:

您不能将“控制器页面模板”(.cpt)用作宏,但不要更改.

首先,Controller Python脚本期望在它的“环境”中使用一些参数,而这些参数在重复使用TAL语句时是不存在的.您必须重新设计模板以不依赖那些部分.

其次,这是HTML表单,并且表单需要目标才能将其数据发送到该表单.在控制器页面模板中,这是由.metadata文件控制的,您必须明确设置其目标.

标签:python,plone
来源: https://codeday.me/bug/20191102/1989720.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有