gpt4 book ai didi

plone - 在@@personal-information View 中隐藏自定义字段

转载 作者:行者123 更新时间:2023-12-05 00:03:59 24 4
gpt4 key购买 nike

我正在关注collective.examples.userdata 在注册表中添加一些自定义字段。

一个字段是“接受条款”,c.e.userdata 也有和文档,正如 package description 上所说的(或者至少我是这样理解的)特殊的“接受条款”字段应该只显示在注册表单上,而不应该显示在@@personal-information View 中。

我还尝试使用全新的 Plone 站点在我的构建中添加 c.e.userdata 并且它也显示在 @@personal-information 上,所以我想知道这是我的误解还是那里存在错误。

任何人都知道如何在@@register 表单上显示一个字段,但如何在@@personal-information 上隐藏它?

最佳答案

@@personal-information 隐藏字段表格,只在 @@register 上显示形式不支持开箱即用,只有相反。

您必须自定义一种或另一种形式才能完成此操作;自定义 plone.app.users.browser.personalpreferences.UserDataPanel 以删除您的字段或提供新版本的 plone.app.users.browser.register.RegistrationForm 以在那里添加您的字段。

这是我的做法:

plone.app.users.browser.personalpreferences import UserDataPanel

class CustomizedUserDataPanel(UserDataPanel):
def __init__(self, context, request):
super(CustomizedUserDataPanel, self).__init__(context, request)
self.form_fields = self.form_fields.omit('acceptTerms')

请注意 .omit('acceptTerms') ,我不得不猜测你的额外字段的名称。然后,您可以针对您的主题浏览器层或直接在您的 Plone 站点或自定义界面上使用 ZCML 注册此自定义面板。在这里,我采用简单的方法将其注册到 Plone 站点对象:

<browser:page
for="Products.CMFPlone.Portal.PloneSite"
name="personal-information"
class=".mymodule.CustomizedUserDataPanel"
permission="cmf.SetOwnProperties"
/>

这应该适用于 Plone 4.0 和 4.1,因为这个特定的类没有改变。

关于plone - 在@@personal-information View 中隐藏自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com