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

Django Rest DRF -当存在外键关系时使用泛型基于类的视图(CreateAPIView)的Post方法

Django Rest DRF是一个基于Django框架的RESTful API开发工具包,它提供了一组用于快速构建Web API的工具和库。DRF中的泛型基于类视图(Generic Class-Based Views)是一种简化开发的方式,它提供了一组通用的视图类,可以通过继承和配置来实现常见的API操作。

当存在外键关系时,可以使用DRF的泛型基于类视图中的CreateAPIView来处理POST请求。CreateAPIView是一个用于创建资源的视图类,它提供了默认的实现来处理POST请求,并自动处理外键关系。

在使用CreateAPIView的POST方法时,需要注意以下几点:

  1. 请求数据格式:POST请求的数据应该以JSON格式传递,包含了需要创建的资源的字段和对应的值。
  2. 外键关系处理:当存在外键关系时,可以在请求数据中使用外键字段的值来关联相关的资源。DRF会自动处理外键关系,将外键字段的值转换为对应的外键对象。
  3. 验证和序列化:在处理POST请求时,DRF会自动进行请求数据的验证和序列化。它会根据定义的模型和序列化器来验证请求数据的合法性,并将数据序列化为模型对象。
  4. 创建资源:在验证和序列化通过后,DRF会自动创建对应的资源,并将资源保存到数据库中。

以下是一个示例代码,演示了如何使用DRF的泛型基于类视图中的CreateAPIView处理POST请求:

代码语言:txt
复制
from rest_framework.generics import CreateAPIView
from .serializers import YourModelSerializer

class YourCreateAPIView(CreateAPIView):
    serializer_class = YourModelSerializer

在上述代码中,YourCreateAPIView是一个继承自CreateAPIView的自定义视图类。serializer_class属性指定了用于验证和序列化请求数据的序列化器。

关于Django Rest DRF的更多信息和使用方法,可以参考腾讯云的相关产品和文档:

代码语言:txt
复制

请注意,以上链接地址仅为示例,实际应根据腾讯云的产品和文档进行选择和参考。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django REST Framework-什么是视图(一)

Django REST Framework中,视图是处理HTTP请求和响应核心组件。视图接收HTTP请求,然后根据请求方法(GET,POST,PUT等)执行相应操作,并返回HTTP响应。...DRF视图可以是函数视图基于视图。函数视图类似于Django函数视图,它接收一个request对象并返回一个响应。...基于视图DRF主要视图类型,它继承自DRF提供,并提供了一些常见功能,例如身份验证,权限控制和序列化器使用。...以下是一个简单基于视图示例:from rest_framework import genericsfrom .serializers import BookSerializerfrom .models...在perform_create()方法中,我们保存了反序列化数据。在DRF中,还有许多其他视图类型可用。

41931

drf之请求、响应、视图

可以在rest_framework.settings 查找所有的drf默认配置项。其中配置响应格式配置项为: ? 在局部配置使用,即只对某一个视图配置生效。...2.1 两个视图 2.1.1 APIView APIView是drf 提供所有视图,继承自DjangoView父。...APIView与View不同之处在于: 传入到视图方法REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework...在APIView中仍以常规视图定义方法来实现get() 、post() 或者其他请求方式方法。例如使用APIView简单实现五个增删查改API接口。...提供关于序列化器使用属性与方法 属性:serializer_class  指明视图使用序列化器 方法: get_serializer_class(self) : 出现一个视图中调用多个序列化器

2.1K20

6.寻光集后台管理系统-用户管理(注册视图)

函数视图 基于函数视图 def some_view(request): dosometing return HttpResponse(html) 特点: 逻辑清晰好理解 复用性较差 视图...基于视图,换了一种写法,不能替代函数视图,有一些优势: 用特定方法去管理http方法(get post) 使用面向对象技术,可以将代码分解成可重用组件 所以后续大部分会采用视图方式编写代码...注册视图 注册需要前端发起一个携带需要注册账号密码post请求 这种常规增删改查视图DRF已经封装好了,直接进行继承即可 from rest_framework import generics...class UserRegisterView(generics.CreateAPIView): serializer_class = UserRegisterSerializer 只需要两行就完成了注册视图编写...): serializer_class = UserRegisterSerializer 路由 路由作用和路由器类似,一个用户请求django站点一个页面,是路由系统通过对url路径部分进行匹配

73220

DRF 视图组件

目录 DRF 视图组件 视图组件大纲 两个视图基本类 五个扩展 九个子类视图 视图集 常用视图集父 魔法 一览表 DRF视图“七十二变” 第一层:基于APIview五个接口 第一层五个接口demo...action属性 DRF 视图组件 DRF框架提供了很多通用视图与扩展,上篇使用APIView是比较偏Base视图使用更加简化了代码,这里介绍一下其他视图用法 Django...REST framwork 提供视图主要作用: 控制序列化器执行(检验、保存、转换数据) 控制数据库查询执行 先来看看这其中的人情世故:两个视图基本类,五个扩展,九个视图子类,视图方法视图集...APIView:DRF最顶层视图 GenericAPIView:DRF通用视图 五个扩展 扩展不是视图,没有集成APIView,需要配合GenericAPIView使用,因为五个扩展实现需要调用...魔法 ViewSetMixin:控制自动生成路由 一览表 DRF视图“七十二变” 第一层是继承APIView写,第二层基于基于GenericAPIView写,第三层基于GenericAPIView

90710

测试开发进阶(二十九)

再次优化 查看 rest_framework.generics.CreateAPIView rest_framework.generics.ListAPIView 可以看到很多重复代码 ?...,不能合并 有相同get方法 两个视图所对应url地址不一致 再次优化 优化思路:使用动作来触发,而不是请求方法 from rest_framework import viewsets viewsets...不再支持 get/post/put/delete等请求方法,而只支持action动作 但是 ViewSet中没有提供 get_object(), get_serializer等方法 继承 viewsets.GenericViewSet...Django中 View DRF中 APIView GenericAPIView mixins扩展 CreateAPIView(合并拓展) 视图集 action和请求方法映射 ViewSet GenericViewSet...__doc__ or None return func return decorator 可以使用action装饰器来声明自定义动作 默认情况下,实例方法名就是动作名 methods

65310

【愚公系列】2022年04月 Python教学课程 69-DRF框架之五个扩展视图子类视图

文章目录 一、DRF框架之五个扩展视图子类视图 1.CreateAPIView 2.ListAPIView 3.RetireveAPIView 4.DestoryAPIView 5.UpdateAPIView...1.封装序列化器常用方法 2.序列化器定义 3.视图定义使用序列化器 总结 ---- 一、DRF框架之五个扩展视图子类视图 常用子类视图 1.CreateAPIView 提供 post 方法...BookInfo from drf_book.serializer import BookSerializer from rest_framework.generics import ListCreateAPIView...(request) print(data) 总结 子类视图总共有9个如下: CreateAPIView:继承CreateModelMixin,GenericAPIView,有post方法,新增数据 DestroyAPIView...框架五个扩展视图子类视图,是为了更便于crud封装减少通用逻辑代码量,也是DRF简化版本,其实下面还有视图集可以进一步简化代码,等下一节介绍了。

29520

不会DRF?源码都分析透了确定不来看?

官网:https://www.django-rest-framework.org/ drf安装默认安装最新版本,如果django版本过低会自动升级到3.x版本 版本支持对应关系 示例...drf快速使用 快速写5个接口 使用Django写五个接口得配5个路由,5个视图函数去处理,现在使用drf不需要了,如下: -查询所有---》get->http://127.0.0.1:8000...,这里尽量在body体里写全参数 局部修改:修改id为1数据,修改啥写啥 删除一条数据:删除id为2数据 CBV源码流程分析 因为DRF框架里大部分都是基于CBV(视图)...多态、组合、反射 Django View和DRF APIView小插曲 ps:不管是DRFAPIView还是乱七八糟xxView,最后只要继承了DjangoView就是视图 DRF之APIView...和Request对象分析 APIView执行流程 # 同样和Django中一样写一个视图,只不过DRF中用APIView底层还是View '''views.py''' from rest_framework.response

1.3K10

第 12 篇:加缓存为接口提速

当然数据库性能也没有说那么不堪,对于大部分访问量不大个人博客而言,任何关系数据库都足以应付。...drf-extensions Cache django 缓存框架比较底层,drf-extensions 在 django 缓存框架基础上,针对 django-rest-framework 封装了更多缓存相关辅助函数和...我们需要用到主要有这些: KeyConstructor 可以理解为缓存生成。...cache_response 装饰器 这个装饰器用来装饰 django-rest-framework 视图(单个视图函数、视图集中 action 等),被装饰视图将具备缓存功能。...,它继承自 DefaultKeyConstructor,这个基中定义了 3 条缓存 key KeyBit: 接口调用视图方法 id,例如 blog.views.

1.1K40

django rest framework通用view

官方文档:http://www.django-rest-framework.org/ drf为我们提供强大通用view功能,本博客对这些view进行简要总结分析。...首先,我们看一下主要几种view以及他们之间关系。 ? 这其中,还涉及了mixins,主要也分为5: ? 下面我们以课程(course)作为一个例子,对view进行一个总结。...1. django View   首先,我们使用django自带view,获取一个课程列表: # drf是通过json格式进行数据交互,所以这里也返回json数据 import json from...它们两者关系同1,要么设置属性,要么重载方法。它们功能在于获取某一个实例,指定传进来后缀是什么。...,强烈建议在做drf时候,使用ViewSet与mixins方法结合进行开发,为我这种小白开发者提供了很强大完整功能!

1K20

DRF一级视图APIView

APIView APIView是Django REST framework提供所有视图,继承自DjangoView。...使用方式: from rest_framework.views import APIView APIView与View不同之处在于: 传入到视图方法Django REST frameworkRequest...对象,而不是DjangoHttpRequeset对象; 视图方法可以返回Django REST frameworkResponse对象,视图会为响应数据设置(render)符合前端要求格式;(需要...Django REST frameworkRequest对象,以及上面使用Response对象,在DRFRequest对象和Response对象中介绍。...基于函数视图 有时候,我们并不需要使用。为此,DRF提供了一组简单装饰器,用于包装基于函数视图以确保它们接收DRFRequest对象。

88710

RESTful源码笔记之RESTful FrameworkAPIview, Viewset总结分析

0x00  引言 官方文档:http://www.django-rest-framework.org/ drf为我们提供强大通用view功能,本博客对这些view进行简要总结分析。...首先,我们看一下主要几种view以及他们之间关系。 ? 这其中,还涉及了mixins,主要也分为5: ?...0x01 django View 首先,我们使用django自带view,获取一个课程列表: # drf是通过json格式进行数据交互,所以这里也返回json数据 import json from...它们两者关系同1,要么设置属性,要么重载方法。它们功能在于获取某一个实例,指定传进来后缀是什么。   ...,强烈建议在做drf时候,使用ViewSet与mixins方法结合进行开发,为我这种小白开发者提供了很强大完整功能!

1K10

django-rest-framewor

DRF(Django RestFramework)是一套基于Django开发、帮助我们更好设计符合REST规范Web应用一个Django App,所以,本质上,它是一个Django App。...DRF APIView请求流程: ?   DRFdjango视图配置流程图(个人画) ?...定义:需要为post新增url,因为根据规范,url定位资源,http请求方式定义用户行为 定义post方法:在视图中定义post方法 开始序列化:通过我们上面定义序列化,创建一个序列化对象,传入参数...程序启动,开始初始化,获取配置信息,获取视图并加载到内存中,获取url及视图对应关系 开始绑定视图和url对应关系,执行as_view()方法 as_view()方法被执行时候传递了参数,为字典形式...(**initkwargs), cls是视图,执行视图函数self就指向视图函数实例对象 等待客户端请求 请求到来,开始执行视图函数,注意,调用视图函数方式是view(request),而如果

1.6K10

python技术面试题(二十三)

__enter__ 方法会在执行 with 后面的语句执行,一般用来处理操作前内容。比如一些创建对象,初始化等。...功能: 1.视图中 request 对象不再是 Django 原始 HTTPRequest 对象,而是由 DRF 框架封装成 Request 对象。...比如 request.data 保存解析之后请求体数据,并且已经解析成了字典或者字典,相当于包含 Django 原始 request 对象中 request.body | request.POST...索引相当于关系数据库中数据库,类型对应关系数据库中表,文档对应关系数据库中记录。 2.项目中是如何向其中添加数据?...Django中数据库相关操作 DRF框架中英文单词 DRF框架 Django相关知识点回顾 python技术面试题-腾讯

1.2K10
领券