需求:課程分類需要2級(jí)聯(lián)動(dòng)
父類別需要根據(jù)課程分類等級(jí)進(jìn)行篩選。
xadmin以插件的形式加入級(jí)聯(lián)功能:
1.新建linkagefilter.py文件洗贰,目錄如下
2.linkagefilter代碼
3.在__init__.py中追加插件
4.xadmin.self.select.js書(shū)寫(xiě)
代碼:
$('#id_category_grade').change(function () {
var category_grade =$('#id_category_grade').find('option:selected').val();//獲取父級(jí)選中值
? ? ? ? $('#id_parent')[0].selectize.clearOptions();// 清空子級(jí)
? ? ? ? $.ajax({
type:'get',
url:'/select/coursecategory/?category_grade=' +category_grade,
data:'',
async:true,
beforeSend:function (xhr, settings) {
xhr.setRequestHeader('X-CSRFToken','{{ csrf_token }}')
},
success:function (data) {
data =JSON.parse(data.coursecategorys)//將JSON轉(zhuǎn)換
? ? ? ? ? ? ? ? for (var i =0;i < data.length;i++) {
var test = {text: data[i].fields.name,value: data[i].pk,$order:i +1};//遍歷數(shù)據(jù),拼湊出selectize需要的格式
? ? ? ? ? ? ? ? ? ? console.log(test)
$('#id_parent')[0].selectize.addOption(test);//添加數(shù)據(jù)
? ? ? ? ? ? ? ? }
},
error:function (xhr, textStatus) {
console.log('error')
}
})
})
js中selectid如何得到:html源碼中直接可以得到污淋。xadmin select生成規(guī)則:id + model.fieldname
5. adminx.py中配置開(kāi)關(guān)開(kāi)啟
6.書(shū)寫(xiě)view,配置url
url參照js請(qǐng)求配置叶洞。
運(yùn)行xadmin后臺(tái)鲫凶,完成課程分類級(jí)聯(lián)效果。