12-crm專案-kingadmin,列表頁actions功能開發
阿新 • • 發佈:2020-08-10
kingadmin actions功能開發
(1)crm/kingadmin.py
(2)kingamdin/admin_base.py
class BaseKingAdmin(object): list_display = [] list_filter = [] search_fields = [] #只讀 readonly_fields = [] filter_horizontal = [] list_per_page = 5 actions = []
(3)table_obj_list.html
加個action框+"單選/全選/全部取消"+執行按鈕
<form> <div class="row"> <div class="col-lg-3"> <select class="form-control" name="action"> <option value="">-------</option> {% for action in admin_class.actions %}<option value="{{ action }}">{{ action }}</option> {% endfor %} </select> </div> <div class="col-lg-2"> <input type="submit" value="執行" class="btn btn-primary" style="padding: 6px"> </div> </div> </form>
給所有客戶資訊新增一個可選框
th用來全選
每個td都要加
js程式碼(可以全選/取消全選)
<script> function SelectALLObjs(ele) { if ($(ele).prop('checked')){ $('input[row-select]').prop('checked',true) }else{ $('input[row-select]').prop('checked',false) } } </script>
執行action
table_obj_list.html
js程式碼
function ActionCheck(ele){ var selected_action = $("select[name='action']").val(); var selected_objs = $("input[row-select]").filter(":checked"); console.log($("select[name='action']").val()) if (!selected_action){ alert("no action selected!") return false } if (selected_objs.length == 0 ){ alert("no object selected!") return false }else { //生成一個標籤,放到form裡 var selected_ids = []; $.each(selected_objs,function () { console.log($(this) ); selected_ids.push($(this).val()) }) console.log(selected_ids) var input_ele = "<input type='hidden' name='selected_ids' value=" + JSON.stringify(selected_ids) + ">" $(ele).append(input_ele); } }
後臺kingadmin/views.py
現在就可以批量執行action操作了。