從@@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')
,我在你的額外字段的名稱猜測。然後,您可以使用ZCML將您的自定義面板註冊到您的主題瀏覽器圖層,或直接在您的Plone站點或自定義界面上註冊。在這裏,我採取簡單的出路,並將其註冊爲Plone站點對象:
<browser:page
for="Products.CMFPlone.Portal.PloneSite"
name="personal-information"
class=".mymodule.CustomizedUserDataPanel"
permission="cmf.SetOwnProperties"
/>
這應該既Plone的4.0和4.1工作,因爲這個特殊的班級並沒有改變。
非常感謝,它非常完美!也許更新collective.examples.userdata也是有道理的,因爲這些文檔是這麼說的。 – gforcada 2011-06-01 13:36:35