• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    django filters实现数据过滤的示例代码

    常用

    当前循环. 作用
    default 数据为空时设置默认值
    length 取变量长度
    filesizeformat 文件大小转成可读
    slice 从指定位置到指定位切片
    date datetime取到的时间,转成指定格式
    safe 防止XSS攻击、加上safe才能传标签
    truncatechars 取摘显示一段剩下的…

    例子

    {#格式   值|函数#}
    {#    如果没有值,那么使用默认值#}
        p>{{ bucunzai|default:'空的哦' }}/p>
    
    {#    取出变量长度#}
        q>{{ name }}--{{ name|length }}/q>
    
    {#      文件大小转换成可读型  kb 自动转成bm、g、tb#}
        p>文件大小{{ file_size|filesizeformat }}/p>
    
    {#    切片 从指定位置到指定位 ,例:第3位到-2位#}
        p>切片:{{ slice_str|slice:'3:-2' }}/p>
    
    {#    把datetime取到的时间,转成指定格式#}
        p>格式化:{{ now|date:'Y-m-d H:i:s' }}/p>
    
    {#    如果后端内容包含标签,那么加上safe 才能转义(防止用户直接加script标签作弊)防XSS攻击#}
        p>{{ h_html|safe }}/p>
    
    {#    取摘要只显示一段,指定取长度后面...例:120个字符 #}
        p>长文本:{{ p_str|truncatechars:12 }}/p>
    
    

    1、视图

    class UserView(ListAPIView):
        """用户列表"""
        queryset = User.objects.all()
        serializer_class = UserSerializer
        filter_backends = (DjangoFilterBackend,)
        filter_class = UserMonthFilter  # 指定过滤类
    

    2、过滤类

    class RobotFilter(django_filters.FilterSet):
        # 使用过滤:URL?created_start_time=2020_01-20created_end_time=2020_01-21
        robot_id = django_filters.CharFilter(field_name='id')
        machine_id = django_filters.CharFilter(field_name='machine_id')
        city = django_filters.CharFilter(field_name='city')
        # lookup_expr(可选)为判断条件,field_name(必选)为模型类属性,created_time查询字符串
        created_time= django_filters.CharFilter(field_name='created_at', lookup_expr='startswith')
        created_start_time = django_filters.DateTimeFilter(field_name='created_at', lookup_expr='gt')
        created_end_time = django_filters.DateTimeFilter(field_name='created_at', lookup_expr='lt')
        problem_isnull = django_filters.BooleanFilter(field_name='problem', lookup_expr='isnull')
        name = django_filters.CharFilter(lookup_expr='iexact')  # iexact表示精确匹配, 并且忽略大小写
        author = django_filters.CharFilter(lookup_expr='icontains') #icontains表示模糊查询(包含),并且忽略大小写
        price = django_filters.NumberFilter(look_expr='exact')  #exact表示精确匹配
        task_res_state = django_filters.CharFilter(method="get_task_res_state")
        
        def get_task_res_state(self, queryset, *arg):
            if str(arg[1]) == "0":  # arg[1]=('task_res_state', '0')
                task_res = (1, 2, 3)
            else:
                task_res = (0, 4, 5, 6)
            print(task_res)
            queryset = queryset.filter(task_res__in=task_res)
            return queryset
        class Meta:
            model = Robot
            fields = ['robot_id', 'machine_id', "city", "created_start_time", "created_end_time", 'created_time',
                      'firmware_version', 'state', "robot_type", "hardware_version", "exist_map", 'task_res_state']
    

    到此这篇关于django filters实现数据过滤的示例代码的文章就介绍到这了,更多相关django filters 数据过滤 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python的Django框架中的数据过滤功能
    上一篇:pytorch 禁止/允许计算局部梯度的操作
    下一篇:pytorch_detach 切断网络反传方式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    django filters实现数据过滤的示例代码 django,filters,实现,数据,过滤,