Dexterity でコンテンツ タイプを作成し、1 つの項目を追加した後、フロント ページにコンテンツのないフィールドが詳細ページに表示されたままになります。
これらのフィールドとそのタイトルを非表示にしたいのですが、どうすればよいですか?
表示フォームを使用して、器用さタイプのビューをカスタマイズできます。
これは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