action批量处理功能

用户可以自定义批量处理功能,但是默认的有批量删除功能.

***思路***

1,定义一个列表用来装action的类名并extend用户自定义列表

2.循环该列表获取到函数名(用于执行)和方法名用于展示

3.post提交,(selected_id是几个checkbox)(actions是类名)判断actions提交的是什么方法,就执行该方法.

Django之stark组件2

############
class ModelStark(object):
        actions=[]


def get_actions_dict(self):
        temp=[]
        for item in self.config.new_actions:
            item_name = item.__name__
            item_desc=getattr(item,'desc',item_name.replace('_','  '))
            action_dict={
                "name":item_name,
                "desc":item_desc,
            }
            temp.append(action_dict)
        return temp

    @property
    def new_actions(self):
        temp=[ModelStark.actions_delete]
        temp.extend(self.actions)
        return temp



 def show_list(self,request):
        '''展示页面'''
        # self--->stark_class_obj--->每一个单独的配置类.
        if request.method=='POST':
            actions = request.POST.get('actions')
            if actions:
                selected_id=request.POST.getlist('selected_id')
                queryset=self.model.objects.filter(id__in=selected_id)
                actions_func=getattr(self,actions)
                actions_func(request,queryset)


######前端########
<select name="actions" style="padding: 8px 10px">
                <option value="">----------</option>
                {% for item in showlist.get_actions_dict %}
                <option value="{{ item.name }}">{{ item.desc }}</option>
                {% endfor %}
            </select><button type="submit" class="btn btn-success">Go</button>
actions

相关文章:

  • 2021-07-10
  • 2021-10-29
  • 2021-08-21
  • 2021-12-26
  • 2022-01-19
  • 2021-08-31
猜你喜欢
  • 2018-03-29
  • 2019-01-15
  • 2021-07-04
  • 2021-12-16
相关资源
相似解决方案