2015-05-14 19 views
5

ho qualche codice nel tipo di contenuto destrezza, come di seguito:Come nascondere un fieldset (scheda) in Plone aggiungere/modificare forma

form.fieldset(
    'transitionsLog', 
    label=_(u"Transitions Log"), 
    fields=['t_log'] 
) 
form.mode(t_log='hidden') 
t_log = schema.TextLine(
    title=_(u'Transitions log'), 
) 

In add forma/modifica, il campo t_log nascondere, ma scheda fieldset ' transizioni Log' mostrare ancora in forma, come sopra ... enter image description here

ho idea di nascondere scheda 'transizioni Log' in aggiunta sotto forma/modificare,

come posso fare?

risposta

6

Poiché i campi sono ancora sottoposti a rendering in modalità nascosta, il fieldset esiste ancora.

Se si desidera omettere completamente il fieldset, è necessario omettere tutti i campi nel fieldset. Ciò può essere ottenuto utilizzando la direttiva omittedform.omitted.

form.fieldset(
    'transitionsLog', 
    label=_(u"Transitions Log"), 
    fields=['t_log'] 
) 
form.omitted('t_log') # This will also omit your fieldset 
t_log = schema.TextLine(
    title=_(u'Transitions log'), 
) 
+0

Sì, grazie molto. – Andy

+0

beh, se voglio omettere questo campo in editForm, come posso fare? – Andy

+0

È possibile ottenere questo immergendosi nel metodo 'update' del modulo. – Mathias

1

trovo un modo giusto, come di seguito al campo omesso nell'abitudine Aggiungi/Modifica modulo:

from plone.z3cform.fieldsets.utils import remove 
... 
def updateWidgets(self): 
    remove(self, 't_log') 
    super(CustomEditForm, self).updateWidgets() 
+0

aha hai dovuto digiunare ;-) Probabilmente dovresti aggiungere il tuo commento sopra come una domanda diversa e questa è una risposta. imho non è lo stesso problema. – Mathias