2012-06-29 206 views
-1

我想用django創建這個表單;如何使用django複選框顯示覆選框列表?

[ ] parent_checkbox1 
    [ ] sub_cb1_pcb1 [ ] sub_cb2_pcb1 
... 
[ ] parent_checkbox10 
    [ ] sub_cb1_pcb10 [ ] sub_cb2_pcb10 

我可以使與父複選框:

parent = forms.MultipleChoiceField(label="Parent", 
             widget=forms.CheckboxSelectMultiple) 
self.fields['parent'].choices = 'list of choices' 

但我怎麼能sub_checkboxes添加到父?

+2

你有沒有考慮自定義字段/控件 - 張貼在這裏可能會幫助http://tothinkornottothink.com/post/10815277049/django-forms-i-custom-fields-and-widgets-in-detail – PhoebeB

+0

嗡嗡聲,將調查它,謝謝 –

回答

1

嘗試使用jQuery dynatree插件代替。我想寫一個自定義小部件,但發現這個更容易安裝和維護。

對於這一點,你需要輸出的遞歸HTML:

<div id="tree"> 
    <ul> 
     <li id="1">Element 1</li> 
     <li id="2">Element 2 
      <ul> ... </ul> 
     </li> 
    </ul> 
</div> 

安裝js文件並調用一個jQuery方法:

$('#tree').dynatree(parameters); 
+0

有趣的一個不同的解決方案,我猜你在表單文章中包含div = tree,但是如何在subm之後的django中處理它它? –

+0

我不記得它是否有任何隱藏的輸入。如果否,yo可以綁定一個回調並設置一些值,然後接收一個字符串並解析它。我使用回調來設置cookie,因爲我不需要表單。 –