2015-05-14 17 views
5

Tôi có một số mã trong kiểu nội dung khéo léo, như sau:Làm thế nào để ẩn một fieldset (tab) trong Plone thêm/chỉnh sửa hình thức

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

Trong add/edit hình thức, lĩnh vực này t_log ẩn nhưng tab fieldset ' chuyển Log' vẫn hiển thị ở hình thức, như trên ... enter image description here

tôi không có ý tưởng để ẩn 'chuyển Log' tab trong add/edit hình thức,

làm thế nào tôi có thể làm gì?

Trả lời

6

Vì các trường vẫn được hiển thị ở chế độ ẩn, trường dữ liệu vẫn tồn tại.

Nếu bạn muốn bỏ qua hoàn toàn fieldset, bạn cần phải bỏ qua tất cả các trường trong fieldset. Điều này có thể đạt được bằng cách sử dụng chỉ thị 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

Vâng, cảm ơn rất nhiều. – Andy

+0

tốt, nếu tôi muốn bỏ qua trường này trong editForm, tôi có thể làm như thế nào? – Andy

+0

Bạn có thể đạt được điều này bằng cách đi sâu vào phương thức 'update' của biểu mẫu. – Mathias

1

Tôi tìm thấy một cách đúng đắn như dưới đây để lĩnh vực bị bỏ qua trong Tuỳ chỉnh Add/Edit Form:

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

haha ​​bạn đã nhanh chóng ;-) Có lẽ bạn nên thêm bình luận của bạn ở trên như một câu hỏi khác và das này như là một câu trả lời. imho nó không phải là cùng một vấn đề. – Mathias

Các vấn đề liên quan