REST framework:过滤

news/2024/11/16 18:43:53/文章来源:https://www.cnblogs.com/Durant0420/p/18377129

一、数据准备

模型类

class UserInfo(models.Model):name = models.CharField(max_length=20, verbose_name='用户名')pwd = models.CharField(max_length=18, verbose_name='密码')email = models.EmailField(max_length=40, verbose_name='邮箱')age = models.IntegerField(verbose_name='年龄', default=18)def __str__(self):return self.nameclass Meta:db_table = 't_user'# 模型Addr关联userinfo,
class Addr(models.Model):user = models.ForeignKey('UserInfo', verbose_name='所属用户', on_delete=models.CASCADE)mobile = models.CharField(verbose_name='手机号', max_length=18)city = models.CharField(verbose_name='城市', max_length=10)info = models.CharField(verbose_name='详细地址', max_length=200)def __str__(self):return self.infoclass Meta:db_table = 't_address'

序列化器类

class UserInfoSerializer(serializers.ModelSerializer):class Meta:model = UserInfofields = '__all__'class AddrSerializer(serializers.ModelSerializer):class Meta:model = Addrfields = '__all__'

 

视图类

class UserView(ModelViewSet):# 指定模型类查询集queryset = UserInfo.objects.all()# 指定序列化器类serializer_class = UserInfoSerializerclass AddrView(ModelViewSet):# 指定模型类查询集queryset = Addr.objects.all()# 指定序列化器类serializer_class = AddrSerializer

二、相关配置

对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持

pip install django-filter -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

在配置文件中增加过滤后端的设置

 # 注册应用,
INSTALLED_APPS = [...'django_filters', 
]
# 指定过滤器
REST_FRAMEWORK = {'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
}

 三、过滤器的基本使用

在视图中添加filterset_fields属性,指定可以过滤的字段

class UserView(ModelViewSet):# 指定模型类查询集queryset = UserInfo.objects.all()# 指定序列化器类serializer_class = UserInfoSerializerfilterset_fields = ('name', 'email',)

指定过滤字段之前

 

指定过滤字段之后

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/786309.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[消息队列]kafka

Kafka 如何保证消息的消费顺序? 我们在使用消息队列的过程中经常有业务场景需要严格保证消息的消费顺序,比如我们同时发了 2 个消息,这 2 个消息对应的操作分别对应的数据库操作是: 更改用户会员等级。 根据会员等级计算订单价格。 假如这两条消息的消费顺序不一样造成的最…

Miller-Rabin 与 Pollard-Rho

1 Miller-Rabin 算法 1.1 引入 Miller-Rabin 的主要作用就是判断一个较大的数是不是质数。 那么根据基础数论中提到过的试除法,我们知道朴素去判断一个数是否是质数的复杂度是 \(O(\sqrt n)\) 的,在 \(n\ge 10^{18}\) 的时候就十分不优了。 而 Miller-Rabin 则是基于费马小定…

深痛教训 2024.8.23

strlen 这种东西千万不要重复调用多次,不然会 T 飞。 单次复杂度是 \(O(len)\) 的,调用 \(n\) 次直接卡成 \(n^2\) 了。 死亡回放:评测机波动抽象,以上全是同一份代码,死因为 strlen。

ST 表

ST 表 ST 表,主要思想是空间换时间,用于解决可重复贡献问题和 RMQ 问题。 可重复贡献问题 指某个运算 \(op\),有 \(x\ op\ x\ =\ x\) 。例如 \(max(x,x)=x\ \ min(x,x)=x\ \ gcd(x,x)=x\)。 RMQ 问题 指在区间内的最大/最小值查询。 ST 表 ST 表基于倍增的思想,做到 \(O(n …

Note - kruskal 重构树

点权多叉重构树 Kruskal 重构树不仅适用于限制边权的题目,也可以处理限制点权的情况。 在某 多校冲刺 NOIP 联训测试 2021 和 CF1797F 出现了这种方法。Alex_wei的博客 进行了详细讲解。 \(Problem1.\) 「NOIP 多校联训 2021」超级加倍参考资料Alex_wei本文来自博客园,作者:…

[ARC177F] Two Airlines

DP 优化My Blogs [ARC177F] Two Airlines 有点魔怔的题。 一个基本的观察是如果当前某个人 \(A\) 拿着盒子走到了位置 \(i\),那位置小于 \(i\) 的人一定永远没用了。如果之后要用到前面的人 \(B\),就应当让 \(B\) 拿着盒子走到 \(i\) 而不是让 \(A\),这样 \(A\) 待在原来的位…

helm原理及实践

目录为什么用HelmHelm是什么简介设计目标架构核心概念如何使用客户端命令使用 为什么用Helm 它使Kubernetes应用程序的配置、部署和维护变得更加简单、可控和可重复。优势 描述模板化配置 Helm 将应用程序的配置参数化,并使用模板引擎将这些参数嵌入到配置文件中。这使得配置更…

SAP S4HANA 2023 FPS01 FAA虚拟机发布了

SAP S4HANA 2023 FPS01 FAA虚拟机发布了。 系统不再需要修改虚拟机日期了,提供最高长达三年的许可,业务财务做账都是真实的时间!该虚拟机版本优点: 新版的一键启动脚本,3分钟就能启动完成。内存加载 80GB 就可以启动所有服务。不需要修改虚拟机日期,完美支持业务操作和财…

k8s介绍-英文版

目录WhyWhatSynopsisDesign GoalsArchitectureimage1image2image3Main ComponetsCore Resoucessome core resoucesrelated cmdsHowImplementation MechanismData Flow Why We need a set of tools and technologies designed to efficiently deploy, manage, and orchestrate c…

线段树(2)——懒惰标记Lazy Tag(单运算)及例题

上一篇文章我们讲了线段树的最基本的操作。如果有一种操作叫做区间加法呢?这个时候显然可以依次单点修改,但是时间复杂度太高了。所以可以考虑优化,由于思考过程可能很长,此处直接引入懒惰标记。 懒惰标记就是在对一颗树的所有节点进行某种统一操作时,只对根节点做一个标记…

Python保存数据为xlsx格式

参考代码 运行下面的代码,首先要安装下面这两个库:pandas openpyxlimport pandas as pd processed_data = [{"日期":"20230809","品牌":"Apple"},{"日期":"20230422","品牌":"Huawei"}, ] …

[思考] Diffusion Model

时间线 以下是一些重要的里程碑,它们代表了基于Diffusion的图像生成方法的发展:时间&机构 名称 简述- VAE Variational AutoEncoder,变分自编码器用于图像生成2020.12 VQ-VAE Vector Quantized-Variational AutoEncoder,一种用于生成模型的量化技术2020.12 VQ-GAN Vect…