1. 程式人生 > 實用技巧 >12-crm專案-kingadmin,列表頁actions功能開發

12-crm專案-kingadmin,列表頁actions功能開發

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操作了。