我想在我的应用程序中实现以下用户组结构:
Group_1
Group_1_1
Group_1_2
Group_2
Group_2_1
Group_2_1_1
我确实设法用django-mptt做到了,但我现在面临以下问题:
在用户界面中我希望有这样的东西:
Memberships:
--------------------
[ ] Group_1
[ ] Group_1_1
[ ] Group_1_2
[ ] Group_2
[ ] Group_2_1
[ ]Group_2_1_1
如果用户想要加入Group_1_1和Group_2_1,则会自动检查加入Group_1和Group_2的复选框,如下所示:
Memberships:
--------------------
[x] Group_1
[x] Group_1_1
[ ] Group_1_2
[x] Group_2
[x] Group_2_1
[ ]Group_2_1_1
感觉用这个伪代码来完成它并不难:
If checked_group has parent:
check parent_group
这有一个JQuery solution,但我认为它应该可以在不使用它的情况下完成,但如果它真的不是 - 那么实现这个的最好方法是什么?将应用程序链接到django项目?
答案 0 :(得分:1)
在用户界面中,您可以使用JQuery轻松实现。例如:
<div>
<input class="parent" type="checkbox" /> Group_1
<ul>
<li><input class="child" type="checkbox" />Group_1_1</li>
<li><input class="child" type="checkbox" />Group_1_2</li>
</ul>
</div>
<div>
<input class="parent" type="checkbox" /> Group_2
<ul>
<li><input class="child" type="checkbox" />Group_2_1</li>
<li><input class="child" type="checkbox" />Group_2_1</li>
</ul>
</div>
<script>
$( document ).ready(function() {
$('.child').click(function(){
$(this).closest('div').find('.parent').attr('checked', true)
});
});
</script>
在您的视图中,您可以使用相同的伪代码逻辑:
if child_group_obj.parent:
child_group_obj.parent.checked = True