首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Django Rest框架过滤继承视图集的每个视图集

Django Rest框架是一个用于构建RESTful API的Python框架。它提供了一套强大的工具和功能,使开发人员能够轻松地构建和管理API。

在Django Rest框架中,继承视图集是一种用于组织和管理API视图的方式。它允许开发人员将相关的API视图组织在一起,并共享一些通用的行为和功能。

要在Django Rest框架中过滤继承视图集的每个视图集,可以使用过滤器类。过滤器类是一种用于根据指定的条件过滤查询结果的工具。

以下是使用Django Rest框架过滤继承视图集的每个视图集的步骤:

  1. 导入所需的模块和类:
代码语言:txt
复制
from rest_framework import viewsets
from rest_framework import filters
  1. 创建一个继承自viewsets.ModelViewSet的视图集:
代码语言:txt
复制
class MyViewSet(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MySerializer
  1. 在视图集中添加一个过滤器类:
代码语言:txt
复制
class MyViewSet(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MySerializer
    filter_backends = [filters.OrderingFilter]
    ordering_fields = ['field1', 'field2']

在上面的代码中,我们使用了OrderingFilter过滤器类,并指定了需要排序的字段。

  1. 在URL配置中注册视图集:
代码语言:txt
复制
from django.urls import include, path
from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'myviewset', MyViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

现在,我们已经成功地将过滤器类应用到了继承视图集的每个视图集中。当我们发送请求到/myviewset时,可以使用查询参数来过滤和排序结果。

除了过滤器类,Django Rest框架还提供了许多其他功能和工具,如身份验证、权限控制、序列化、分页等。开发人员可以根据具体需求选择适合的功能和工具来构建强大的API。

腾讯云提供了一系列与云计算相关的产品和服务,如云服务器、云数据库、云存储等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于腾讯云的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django DRF路由与扩展功能实现

图集与路由使用 使用图集ViewSet,可以将一系列逻辑相关动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据...视图集只在使用as_view()方法时候,才会将action动作与具体请求方式对应上。 1....扩展功能 为了方便接下来学习,我们创建一个新子应用 opt python3 manage.py startapp opt 因为接下来功能中需要使用到登录功能,所以我们使用django内置admin...过滤Filtering 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。...使用方法: 在类视图中设置filter_backends,使用rest_framework.filters.OrderingFilter过滤器,REST framework会在请求查询字符串参数中检查是否包含了

3K30

Django REST Framework-路由器(一)

Django REST Framework(以下简称DRF)是基于Django框架构建Web API框架。...:from rest_framework import routersrouter = routers.DefaultRouter()注册视图函数使用路由器注册视图函数有两种方式:基于视图集(Viewsets...使用图集需要先定义一个继承自ModelViewSet或ViewSet类,然后将这个类传递给路由器register方法即可。...例如,下面的代码定义了一个继承自ModelViewSet图集类BookViewSet,然后将这个类注册到路由器中:from rest_framework import viewsetsfrom .models...由于HelloView继承自APIView,因此需要使用as_view方法将其转换为视图函数。添加路由器到URLconf注册视图函数之后,还需要将路由器添加到DjangoURLconf中。

68041

DRF框架学习(四)

DRF框架学习(四) 1.视图集对象action属性 作用: 获取现在要执行是哪一种操作。 self.action:是字符串类型,目的是获取所有执行操作。...返回latest操作所使用查询集 else: # 返回其他操作所使用查询集 2.路由Router(urls文件中使用) 作用:(重点) 配合视图集进行使用,动态生成视图集中处理函数...pass 7.过滤 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。...pip install django-filter 在配置文件中增加过滤后端设置: INSTALLED_APPS = [ ......'django_filters', # 需要注册应用, ] # 过滤 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend

2.7K40

Django REST Framework-视图集(五)

图集路由在 Django REST Framework 中,我们可以使用路由(Router)来自动生成 API URL 路由。.../、/books/{id}/ 等 URL 路径映射到 BookViewSet 视图集方法上,并且自动处理分页、过滤、认证、权限等功能。...结论视图集(Viewset)是 Django REST Framework 中非常方便 API 开发方式,它可以简化 API 编写和维护工作,提高开发效率和代码可读性。...通过本文介绍,我们了解了如何使用图集来开发 RESTful API,并学习了视图集基本用法、认证和权限、过滤器、路由等方面的知识。...希望读者能够通过本文学习,更好地掌握 Django REST Framework 中图集技术,并用它来构建更加高效、安全和可靠 RESTful API。

41471

DRF 视图组件

action属性 DRF 视图组件 DRF框架提供了很多通用视图基类与扩展类,上篇使用APIView是比较偏Base,视图使用更加简化了代码,这里介绍一下其他视图用法 Django...REST framwork 提供视图主要作用: 控制序列化器执行(检验、保存、转换数据) 控制数据库查询执行 先来看看这其中的人情世故:两个视图基本类,五个扩展类,九个视图子类,视图集方法,视图集...views.BookViewDetail.as_view()) 总结:到第二层只需修改queryset和serializer_class类属性即可,其余都不需要修改 注意:虽然pk没有在orm语句中过滤使用...~ ReadOnlyModelViewSet视图集 继承该ReadOnlyModelViewSet视图集作用是只读,只做查询,修改删除等操作不允许 from rest_framework.viewsets...,以前写法可以继续使用,但是如果要自动生成路由必须得继承ViewSetMixin及其子类;或者选择继承ViewSet、GenericViewSet class ViewSetMixin: ""

90110

Django REST Framework-视图集(四)

图集过滤器在实际开发中,我们通常需要对 API 返回结果进行过滤、排序和分页等操作。在 Django REST Framework 中,我们可以使用过滤器(Filter)来实现这些功能。...过滤器可以根据客户端提供查询参数来对返回结果进行过滤、排序和分页等操作。要在视图集使用过滤器,我们可以定义 filter_backends 属性,并指定过滤器类。...例如,我们可以定义一个名为 BookViewSet 图集类,并使用 DjangoFilterBackend 过滤器来对查询结果进行过滤:from django_filters.rest_framework...在 Django REST Framework 中,我们可以使用过滤器(Filter)来实现这些功能。过滤器可以根据客户端提供查询参数来对返回结果进行过滤、排序和分页等操作。...例如,我们可以定义一个名为 BookViewSet 图集类,并使用 DjangoFilterBackend 过滤器来对查询结果进行过滤:from django_filters.rest_framework

50782

【愚公系列】2022年04月 Python教学课程 70-DRF框架之视图集

文章目录 前言 一、基本视图集 1.ViewSet 2.GenericViewSet 二、扩展视图集 1.ModelViewSet 2.ReadOnlyModelViewSet 三、用法补充 1.扩展方法使用...前言 使用图集ViewSet,可以将一系列逻辑相关动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据...视图集只在使用as_view()方法时候,才会将action动作与具体请求方式对应上。..."""经过上面的处理,我们就已经把所有视图方法写在一个类中了,但是继承父类有点多 所以,drf里面提供了模型视图集[ModelViewSet],可以一次性提供5个api接口方法 最后,def还提供了只读模型视图集...此扩展方法包括:get_serializer_class(获取序列化器返回)、action属性、自定义方法使用 from django.db import DatabaseError from rest_framework.authentication

1.6K30

第 5 篇:用视图集,简化你代码

因此,django-rest-framework 引入了视图集(Viewsets),把对同一个资源不同操作,集中到一个类中。...同样,针对 Web 开发中常见逻辑,django-rest-framework 也提供了通用视图集,进一步简化开发工作。...使用图集一个更大好处,就是可以配合 django-rest-framework 提供路由器(router),自动生成 API URL,不需要我们再手工将 URL 模式和视图函数绑定了。...Post.objects.all() pagination_class = PageNumberPagination permission_classes = [AllowAny] 所有视图集都要继承图集基类...但是我们博客文章列表是有分页功能,接下来我们就使用 django-rest-framework 提供分页辅助类,一行代码就可以完成分页功能。

80310

Django REST Framework-如何使用图集(一)

如何使用图集定义视图集定义视图集需要继承 DRF 提供图集类,例如 ModelViewSet:from rest_framework import viewsetsfrom .models import...注册视图集接下来,需要将定义好图集注册到路由中。我们可以使用 DRF 提供 DefaultRouter 类来帮助我们自动生成 URL 配置。...例如,在 urls.py 文件中,我们可以这样注册 BookViewSet:from django.urls import path, includefrom rest_framework.routers...然后,我们创建了一个路由对象 router,并使用 router.register() 方法将 BookViewSet 视图集注册到路由中。...最后,我们将 router.urls 包含在 Django URLConf 中,以便让 Django 可以将其添加到项目的 URL 配置中。

62841

第 9 篇:实现分类、标签、归档日期接口

一是 action 装饰器,它用来装饰一个视图集方法,被装饰方法会被 django-rest-framework 路由自动注册为一个 API 接口。...回顾一下我们之前在使用图集 viewset 时提到过 action(动作)概念,django-rest-framework 预定义了几个标准动作,分别为 list 获取资源列表,retrieve...视图集中所有以上提及以标准动作命名方法,都会被 django-rest-framework 路由自动注册为标准 API 接口。...django-rest-framework 默认只能识别标准命名图集方法并将其注册为 API,但我们可以添加更多非标准 action,而为了让 django-rest-framework 能够识别这些方法...django-rest-framework 中非常方便地使用 django-filter。

2.6K30

第 16 篇:别再手动管理接口文档了

drf-yasg drf-yasg[5] 是一个 django 第三方应用,它可以从 django-rest-framework 框架编写代码中自动提取接口信息来生成符合 OpenAPI 标准文档...因为 PostSearchView 继承自 HaystackViewSet,在代码中并没有显示地定义 retrieve 这个方法,而是从父类继承而来,所以我们借助 django 提供辅助函数 method_decorator...对于稍微复杂一点视图集,例如 PostViewSet,这个视图集含有多个 action 对应多个接口,功能描述信息格式差不多是一样,关键点是指明每个 action 对应内容: # filename...先来看 GET /posts/archive/dates/,它对应 action 是 list_archive_dates,由于 action 默认会从它所在图集继承一些属性,而 drf-yasg...,但在全局进行了配置),在解析 list_archive_dates 参数时,drf-yasg 错误地解析到了从视图集继承 PostFilter 和 PageNumberPagination,所以就把这两个类中定义参数也包含进文档了

1.8K20

Django REST Framework-视图集(一)

Django REST Framework 中,视图集(Viewset)是一种简化了视图函数(View Function)开发方式,它可以让开发者更快速、更方便地创建 RESTful API。...视图集基本用法在 Django REST Framework 中,视图集是一个处理 HTTP 请求类,它封装了一组相关视图函数,包括列表视图(List View)、详情视图(Detail View...使用图集,我们可以将这些相关视图函数封装在同一个类中,以便更好地组织和管理代码。要创建一个视图集,我们需要先定义一个视图集类,并指定其对应模型和序列化器类。...例如,我们可以定义一个名为 BookViewSet 图集类,它对应模型是 Book,对应序列化器是 BookSerializer:from rest_framework import viewsetsfrom...除了基本 CRUD 操作外,视图集还支持其他一些常用操作,例如搜索、排序、过滤、分页等。在下面的章节中,我们将详细介绍如何使用图集进行这些操作。

43382

drf框架中所有视图及用法

0909自我总结 drf框架中所有视图及用法 一.drf框架所有视图类 from django.views import View from rest_framework import views,...generics, mixins, viewsets 最基础:django自带views类 drf框架中最基础视图类:views.APIView drf框架中工具视图:generics GenericAPIView...上述视图都是基于django自带views进行相关方法分装 二.viewsets视图集 ViewSetMixin:视图集工具 - 重写as_view - 将 请求方式 映射到视图类中 指定方法...那继承功能,也可以自定义功能 ViewSet:与模型类无关或不是标准模型类接口 - 一般都是自定义功能 三.generics中GenericAPIView使用 将 queryset 和 serializer_class...,*args,**kwargs) 不过再执行这些操作时候依然要给与generics视图一样两个参数,且创建视图类必须继承其方法类为父类 五.generics中继承GenericAPIView子类使用

1.8K30

DjangoRESTframework(补充)

两个基类 1) APIView rest_framework.views.APIView APIView是REST framework提供所有视图基类,继承DjangoView父类...APIView与View不同之处在于: 传入到视图方法中REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework...filter_backends 过滤控制后端 详情页视图使用 Lookup_field 查询单一数据对象使用条件字段,默认为‘pk’ Look_url_kwarg 查询单一数据时 url 中参数关键字名称...详情视图使用: get_object(self) 返回详情视图所需模型类数据对象,默认使用lookup_field参数来过滤queryset。...视图集只在使用as_view()方法时候,才会将action动作与具体请求方式对应上。

2.2K30

Django REST Framework-视图集类型(一)

Django REST Framework 中,视图集(Viewset)是一种方便 API 开发方式,它将视图(View)和序列化器(Serializer)组合起来,提供了一组标准 API 操作...视图集可以分为以下几种类型:ModelViewSetModelViewSet 是最常用图集类型,它继承了 GenericAPIView 和 ModelMixin,可以自动生成常用 CRUD 操作,...例如,我们可以在 views.py 文件中定义一个 BookViewSet 视图集:from rest_framework import viewsetsfrom .models import Bookfrom...ReadOnlyModelViewSetReadOnlyModelViewSet 继承自 GenericAPIView 和 ReadOnlyModelMixin,提供了只读操作,包括列表查询和详情查询...例如,我们可以在 views.py 文件中定义一个 AuthorViewSet 视图集:from rest_framework import viewsetsfrom .models import Authorfrom

36920
领券