怎么用django filters实现数据过滤
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"怎么用django filters实现数据过滤"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2026年11月03日怎么用django filters实现数据过滤
这篇"怎么用django filters实现数据过滤"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"怎么用django filters实现数据过滤"文章吧。
常用
| 当前循环. | 作用 |
|---|---|
| default | 数据为空时设置默认值 |
| length | 取变量长度 |
| filesizeformat | 文件大小转成可读 |
| slice | 从指定位置到指定位切片 |
| date | datetime取到的时间,转成指定格式 |
| safe | 防止XSS攻击、加上safe才能传标签 |
| truncatechars | 取摘显示一段剩下的… |
例子
{#格式 值|函数#}{# 如果没有值,那么使用默认值#} {{ bucunzai|default:'空的哦' }}
{# 取出变量长度#} {{ name }}--{{ name|length }}
{# 文件大小转换成可读型 kb 自动转成bm、g、tb#} 文件大小{{ file_size|filesizeformat }}
{# 切片 从指定位置到指定位 ,例:第3位到-2位#} 切片:{{ slice_str|slice:'3:-2' }}
{# 把datetime取到的时间,转成指定格式#} 格式化:{{ now|date:'Y-m-d H:i:s' }}
{# 如果后端内容包含标签,那么加上safe 才能转义(防止用户直接加script标签作弊)防XSS攻击#} {{ h_html|safe }}
{# 取摘要只显示一段,指定取长度后面...例:120个字符 #} 长文本:{{ p_str|truncatechars:12 }}
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-20&created_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实现数据过滤"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
大小
数据
格式
文件
标签
长度
精确
位置
变量
字符
文章
时间
用户
知识
篇文章
攻击
查询
价值
作用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网络科技
上海卓越科技互联网
深圳九邦互联网科技有限公司
美国互联网科技巨头监管
奇酷互联网科技
互联网高科技股票
互联网科技英文翻译
一五八零互联网科技
剑昆互联网络科技有限公司临桂
银川新华互联网科技职业技术培训学校图片
互联网和黑科技的看法
港股科技和互联网
河南猎农互联网科技有限公司
岳阳华臻互联网科技有限公司
梅州GM互联网络科技有限公司
科技互联网专业工作会议发言稿
上海互联网科技园景观
网互联网络科技
前海云享互联网科技
小牛互联网科技有限公司地址
互联网科技公司税收优惠
华中科技大学互联网
卓越科技互联网 招聘
互联网系的金融科技公司
港股科技和互联网
上海乐五互联网科技有限公司
福建互联网展示科技馆设计
云南互联网科技学费
北京瑞云互联网科技有限公司
每日互联网科技新闻