码迷,mamicode.com
首页 > 其他好文 > 详细

CRM手记-7 | Django

时间:2018-01-20 20:29:29      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:field   迭代器   value   tab   python3   admin   nat   根据   就会   

# 综合排序,分页,过滤展示
    # 即可以排序后,再过滤,又可以过滤后,再排序,最后分页;
    # 1.在筛选的基础之上排序
    #     筛选后的参数添加到排序的链接中;
        # table_obj_list.html
            {% get_filter_param admin_class %}
        # kingadmin_tag.py
            # 排序链接中添加筛选参数,先筛选再排序
            @register.simple_tag
            def get_filter_param(admin_class,):
                filter_param = ‘‘
                # 根据获取筛选条件的字典来判断,是否有筛选
                if admin_class.filter_condtions:
                    for k,v in admin_class.filter_condtions.items():
                        filter_param += &%s=%s%(k,v)

                return filter_param
    # 2.在排序的基础之上筛选
    #     将排序参数_o添加到筛选的提交表单;
    #     生成一个隐藏标签;放入当前排序字段;
        # table_obj_list,html
            <input type="hidden" name="_o" value="{{ current_order_field.keys.0 }}">
            # 因为过滤功能一个提交表单,所以只要将name与value提交上去,就会添加到url中;
            # 因为在python3中keys()返回的是一个迭代器,而不是列表,所以上面没有返回值;
        # 写一个simple_tag;
        # kingadmin_tag.py
            # 获取当前排序字段
            @register.simple_tag
            def get_order_field(current_order_field):
                # 将迭代器转换成列表,展示的字段名及索引
                return list(current_order_field.values())[0]
        # 排序结果对过滤查询就影响吗?
        # 没有,只是一个URL上参数展示,表示操作已执行的状态;
        # 报错:list out of range
        # 原因:默认是没有排序的,但是值取了;
            # kingadmin_tag.py
            @register.simple_tag
            def get_order_field(current_order_field):
                # 如果有排序,则返回,没有就返回空;
                return list(current_order_field.values())[0] if current_order_field else ‘‘
    # 3.注意一点,分页我们用的是第三方库pure-pagination,它对django自带的
    #    pagination做了一些增强功能的封装,生成的链接{{page.querystring}}
    #     会自动在其他功能的基础之上添加参数,与分页;

 

CRM手记-7 | Django

标签:field   迭代器   value   tab   python3   admin   nat   根据   就会   

原文地址:https://www.cnblogs.com/pymkl/p/8321707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!