2012-06-29 58 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,因为我不需要表单。 –