DRF项目之通过业务逻辑选择数据集和序列化器

在REST后台开发中,我们需要通过业务逻辑来选择数据集或者序列化器。

选择数据集:

 # 重写get_queryset实现通过业务逻辑选择指定数据集
    def get_queryset(self):
        ‘‘‘
        通过前段传递过来的keyword选择指定数据集
        :return:
        ‘‘‘
        # 获取keyword
        keyword = self.request.query_params.get(‘keyword‘)

        # 通过前段传递过来的keyword选择指定数据集
        if keyword:
            users = User.objects.filter(username__contains=keyword)
        else:
            users = User.objects.all()

        # 响应数据
        return users

选择序列化器:

    # 重写get_serializer_class方法,实现通过业务逻辑选择指定序列化器
    def get_serializer_class(self):
        if self.request.method == ‘GET‘:
            return UserMSGSerializers
        elif self.request.method == ‘POST‘:
            return UserAddSerializers

我们只需要在API视图中重写以上两个方法即可达到目的。

原文地址:https://www.cnblogs.com/chao666/p/12308591.html

时间: 2024-08-02 17:46:59

DRF项目之通过业务逻辑选择数据集和序列化器的相关文章

django--BBS项目,后端业务逻辑整理

经典的生活价值观 别让人生,输给了心情.心情不是人生的全部,却能左右人生的全部.心情好,什么都好,心情不好,一切都乱了.我们常常不是输给了别人,而是坏心情贬低了我们的形象,降低了我们的能力,扰乱了我们的思维,从而输给了自己. 控制好心情,生活才会处处祥和.好的心态塑造好心情,好心情塑造最出色的你. 静静的过自己的生活,心若不动,风又奈何.你若不伤,岁月无恙. BBS 项目开发逻辑梳理 第一步:先进行数据库设计 数据库设计规则是: 1.先创建基表:用户表.站点表.文章表.标签表.分类表.文章2标签

javascript要不要用来处理业务逻辑

这个问题,我现在才明白该怎样描述这个已经困惑了我很久的问题,在公司做的项目中,js对于数据验证起到了很大的作用,但是这使得整个项目的业务逻辑变得零散,甚至混乱 现在公司里的项目就是这样的.现在再想想,公司项目中的service层为什么写的那么简单,为什么action很多时候做了service层做的事情 如果用纯java去做处理业务逻辑,去做数据验证,也是可以的,spring框架中也有,但是现在我还不能熟练的掌握,我还需要更多的练习 我现在的想法是,javascript,甚至很好用的jquery,

PHP业务逻辑层和数据访问层设计

以下还是觉得有点抽象 1.面向对象能给我们什么? 进行分析之前,我们先来复习一下面向对象.对象是要进行研究的任何事物.类是具有相同或相似性质的对象的抽象.面向对象的要素:封装.继承.多态.面向对象目的是:如何分配职责. 面向对象设计原则: 单一职责原则 (SRP) 一个类,只有一个引起它变化的原因. 开放-封闭原则 (OCP)(对外)可扩展,(对内)不可修改. 李氏替换原则 (LSP) 子类型必须能够完全替换其父类型. 依赖倒置原则 (DIP) 要依赖于抽象,不要依赖于具体. 接口隔离原则 (I

在 ASP.NET 中创建数据访问和业务逻辑层(转)

.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均与表示层分离.表示层由网站用户有权查看或更改数据的页面组成. ASP.NET 可通过多种方式提供数据访问.业务逻辑和表示形式之间的分离.例如,数据源模型(包括 LinqDataSource 和 ObjectDataSource 等服务器控件)可将表示层与数据访问代码和业务逻辑分离. 另一种模式是将数

项目架构开发:业务逻辑层之领域驱动失血模型

前边我们构建了个数据访问层,功能虽然简单,但是基本够用了.传送门:项目架构开发:数据访问层 这次我们构建业务逻辑层 业务逻辑是一个项目.产品的核心,也是现实世界某种工作流程在代码层面的体现. 所以,业务逻辑的合理组织构造,或更真实地反映现实业务操作,对项目的成功与否非常重要 现在业界对业务逻辑层的开发,一般会参考Martin Fowler大师提出来的针对业务层开发的四种模式 分别是面向过程的事务脚本.表模块模式,面向对象的活动记录与领域开发模式 我们要做的就是领域驱动开发模式,注意标题中的“失血

数据库面对不同业务逻辑约束条件的选择

数据表的约束我觉得还是很有用的,至少在数据库优化方面还是用的比较多的,可以大大的提高检索效率,作用也是比较明显的,另外一点,表的约束可以在某种程度上简化程序代码端的业务逻辑量,这寄存于DBMS上面,其维护性我绝得韩式比较高的,这一般类型的数据库里面,我们常见的约束有:主键,外键,为空,唯一等,这四类是比较常见的约束,我绝对约束的实质应该是为真实的业务逻辑而服务的,否则则没有意义,所以,面对不同的业务逻辑逐一的进行分析: 1:什么情况下使用主键: 主键的含义是唯一且不为空,所以根据这个规范,能够满

从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑

前言      从上篇30岁找份程序员的工作(伪程序员的独白),文章开始,我说过我要用我自学的技术,来搭建一个博客系统,也希望大家给点意见,另外我很感谢博客园的各位朋友们,对我那篇算是自我阶段总结文章的评论,在里面能看出有很多种声音,有支持的我的朋友给我加油打气,有分享自己工作经历的朋友,有提出忠肯意见的朋友,有对记事本写代码吐槽的朋友,也有希望让我换个行业的,觉得我可能不适合这个行业朋友,不管怎样,我都接受,都是大家同行的一些忠告,谢谢大家. 首先我要在这里感谢很多博客园里面的大牛,写了很多系

面对数据丢失、数据错误、业务逻辑发生变化时,可以这么解决。

根据福克斯新闻在20日的报道,美国田纳西州一名14岁男孩Jackson成功在家中打造出核融合实验的小型聚变反应器,成功结合2个氘原子.释出一颗中子. 关键是,Jackson所需的零件是从网上购买,或自己改装的.而且仅用一年时间就打造出了反应器.美媒称,他可能打破了全球最年轻核科学家Taylor Wilson的纪录,是年纪最小的完成制作了核聚变反应器的"科学家". 嗯,还是别人家的孩子,惹不起惹不起!然而没有对比就没有伤害,说出来不怕你们笑话我(们): 面对数据丢失的我 我在公司负责统计

JavaEE使用三层架构(显示层、业务逻辑层、数据访问层)实现数据的增删改查

实例: 1.功能描述 实现一个简易新闻发布系统,包括查看.添加.修改和删除新闻等基本功能 2.具体要求 (1) 创建数据库 newssystem,创建表 news,要求如下: (2) 程序运行时,显示'发布新闻'页面(如图 1),输入相关内容,单击'提交'按钮,将新闻内容添加到数据库 (3) 单击图 1 中的'查看'按钮,显示'查看新闻'页面(如图 2),增加'修改'和'删除'链接 (4) 单击图 2 中的'update'链接,显示'修改新闻'页面(如图 3),修改后单击'修改'按钮确认,单击'