
正文
DJANGO结合jQuery cxSelect 作二级菜单过滤
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
EN,到这个阶段,基本功能算是完成了。
使用了jQuery cxSelect这个插件。
http://code.ciaoca.com/jquery/cxselect/
相关代码如下:
html:
<form class="uk-form" name="filter-form">
<div id="element_id">
项目:<select class="Site_name" name="Site_name"></select>
组件:<select class="App_name" name="App_name"></select>
<a class="filter_btn uk-button" name="filter_btn">过滤</a>
</div>
</form>
JS:
$('#element_id').cxSelect({
url: '/version/filter_app/',
selects: ['Site_name', 'App_name'],
jsonName: 'name',
jsonSub: 'value',
nodata: 'none'
});
views.py
def filterAppFromSite(request):
app_list = []
site_names = S.objects.all()
for site_name in site_names:
app_names = site_name.app_name.all()
app_dict = {}
a = []
for app_name in app_names:
c = {}
c['name'] = str(app_name.name)
a.append(c)
app_dict['name'] = str(site_name.name)
app_dict['value'] = a
app_list.append(app_dict)
return render_to_json_response(app_list)
实现:
附一段通过MANYTOMANY检索语法:
从发布单倒追组件到项目,然后用ID IN功能检索多少条发布记录:
app_id_list = []
site = S.objects.get(name=self.kwargs['site_name'])
for app in site.app_name.all():
app_id_list.append(app.id)
return DV.objects.filter(app_name_id__in=app_id_list)






