我用Dexterity创建了一个内容类型,添加一个项目后,在首页,没有内容的字段仍然显示在详细信息页面中。
我想隐藏这些字段及其标题,我该怎么办?
您可以使用显示表单自定义敏捷类型的视图。
这是一个z3c.form
表单,因此我们可以使用该.updateWidgets()
方法来动态设置小部件可用性以隐藏其中一些:
import z3c.form
from plone.directives import dexterity
class MyCustomView(dexterity.DisplayForm):
grok.context(IMyContentType)
grok.require('zope2.View')
def updateWidgets(self):
super(MyCustomView, self).updateWidgets()
for widget in self.widgets.values():
if not widget.value:
widget.mode = z3c.form.interfaces.HIDDEN_MODE