Django Rest Framework动态获取字段

简介: 项目名称 drf-dynamic-fields 项目描述 提供了一个mixin,用于serializer,实现动态配置返回字段的效果。在获取数据的API的时候,在URL中加入一个查询字段fields,用来过滤返回数据的字段,减少网络传输的数据。

项目名称

  • drf-dynamic-fields

项目描述

  • 提供了一个mixin,用于serializer,实现动态配置返回字段的效果。在获取数据的API的时候,在URL中加入一个查询字段fields,用来过滤返回数据的字段,减少网络传输的数据。
  • github地址:https://github.com/dbrgn/drf-dynamic-fields

安装

pip install drf-dynamic-fields
  • 如果不想在项目中多加一个库,也可以直接将项目中drf_dynamic_fields目录下的init.py文件中的类直接复制出来到自己的项目中。 直接下载init文件 -->点这里

配置

  • 在创建serializer的时候,把DynamicFieldsMixin这个mixin加上即可。
  • 下面的代码是一个示例,我们创建了一个BookSerializer,加入了DynamicFieldsMixin。

    from rest_framework import serializers
    from drf_dynamic_fields import DynamicFieldsMixin
    from .models import Book
    
    class BookSerializer(DynamicFieldsMixin, serializers.ModelSerializer):
        class Meta:
            model = Book
            fields = '__all__'

然后,就可以直接用了~


使用

  • 我们可以在url中使用fields来指定要返回的字段,例如我们在查询中仅需要获取图书的书名(name)和作者(author),那么URL可以写成这个样子,多个字段间使用逗号分隔即可:

    GET https://wxy.email/book/?fields=name,author
  • 对于获取单条信息的查询也同样好使:

    GET https://wxy.email/book/666/?fields=name,author
  • 如果我们仅仅需要某些字段不显示,则可以使用omit参数省略一些字段,例如我们在查询中其他的信息都要,但是图书描述信息字段(description)不要,那么我们可以把URL写成这个样子:

    GET https://wxy.email/book/?omit=description
  • 参考信息: 作者在github项目中实际上说到为了保持项目的简单,实际上已经不再接受新需求的添加了。
  • 如果需要更强大的字段动态获取功能,则可以参考这个项目https://github.com/rsinger86/drf-flex-fields
  • 参考链接:时光不写博客-Django Rest Framework 动态获取字段
  • 本文转载自:knktc
相关文章
|
3月前
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
30 0
Python 教程之 Django(9)对模型中的字段进行验证
|
4月前
|
存储 关系型数据库 MySQL
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
30525 0
|
10天前
|
开发者 Python
Django模板系统的强大之处:动态渲染与扩展性
【4月更文挑战第15天】Django模板系统是Web开发中的强大工具,支持动态渲染和扩展性。动态渲染包括变量、标签和过滤器的使用,实现内容根据上下文数据动态生成。模板继承和自定义标签则提升了扩展性,减少代码重复,增强可维护性。通过这些特性,Django模板系统助力开发者构建高效、动态的Web应用。
|
4月前
|
前端开发 网络架构 Python
django实现动态路由的简单方法
django实现动态路由的简单方法
72 1
|
4月前
|
JSON API 网络架构
Python Web 开发: 解释 Django REST framework 的作用,以及如何定义序列化器(Serializer)?
Python Web 开发: 解释 Django REST framework 的作用,以及如何定义序列化器(Serializer)?
|
4月前
|
存储 数据库 Python
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
37 0
|
7月前
|
API 网络架构 开发者
深入探索 Django Rest Framework
深入探索 Django Rest Framework
60 0
|
8月前
|
前端开发 Python
利用 Django 动态展示 Pyecharts 图表数据的几种方法(二)
利用 Django 动态展示 Pyecharts 图表数据的几种方法(二)
|
8月前
|
JSON 数据可视化 前端开发
利用 Django 动态展示 Pyecharts 图表数据的几种方法(一)
利用 Django 动态展示 Pyecharts 图表数据的几种方法
|
9月前
|
存储 前端开发 数据库
【Django学习】(十)模型序列化器_关联字段序列化
【Django学习】(十)模型序列化器_关联字段序列化
【Django学习】(十)模型序列化器_关联字段序列化