1.明确处理对象,在restframework的处理过程当中,如果是针对model写视图的话,queryset是要待展示的对象集,serializer_class是对每一个对象的所要使用的处理方式。
class GuideWordViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""文章索引"""
queryset = GuideWord.objects.all()
serializer_class = GuideWordSerializer
2.反序列化,我所做的反序列化是针对外键使用的,当一个model中有外键的时候,设置好related_name,然后在序列化的过程当中就可以令属于同一个外键对象的对象在同一个外键对象的序列数据中展示,但是该字段的名称应该为related_name,然后还有要注意的一点就是序列化过程当中一些不必要的字段可以忽略掉。
company = models.ForeignKey(Company, related_name='company_video', verbose_name='公司', blank=True, null=True) (model中的外键字段)

class GuideVideoSerializer(serializers.ModelSerializer):
class Meta:
model = GuideVideo
fields = ('id', 'title', 'video', 'country',) class ReCompanySerializer(serializers.ModelSerializer):
company_video = GuideVideoSerializer(many=True, read_only=True) class Meta:
model = Company
fields = ('id', 'name', 'country', 'image', 'company_video',)
3.model层面,可以通过重写save方法使得数据通过处理后保存到数据库当中我碰到的情况是使用DjangoUeditor上传图片和视频的时候保存到数据库的数据中包含双引号,结果在序列化的时候会添加转义字符,这样在前端读取的资源的时候有些不方便,所以我就对model的save方法进行了改写,在字段存进数据库之前将该字段数据中的双引号替换为单引号,这样在后续的序列化过程中就不用被强制添加转义字符反斜杠了。
    def save(self, *args, **kwargs):
self.content = self.content.replace('"', "'")
return super(GuideWord, self).save(*args, **kwargs)
4.再一个就是DjangoUeditor的上传路径问题了,当在xadmin中集成了ueditor之后,只要在adminx.py中定义一个class ModelAdmin类,在其中定义style_fields = {'field': 'ueditor'}然后在对应注册对象中加入这个ModelAdmin类,就可以在xadmin后台编辑该字段时使用富文本编辑器了。说回正题,DjangoUeditor还需要在model中对需要的字段定义为UEditorField,该类型继承自TextField,其中有图片和附件的上传路径配置,但是没有直接给出视频的上传路径配置,然后看github的编辑器的介绍查看到了上传视频的路径配置,只需要对upload_settings中设置为:

upload_settings={'imageMaxSize': 1204000,
'videoPathFormat': "guide/videos/%(basename)s_%(datetime)s.%(extname)s"}

关于DjangoUeditor上一篇文章中也有介绍,有需要的可以去看一哈。。。

restframework框架写api中的个人理解以及碰到的问题的更多相关文章

  1. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  2. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  3. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  4. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  5. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  6. Flask中endpoint的理解

    在flask框架中,我们经常会遇到endpoint这个东西,最开始也没法理解这个到底是做什么的.最近正好在研究Flask的源码,也就顺带了解了一下这个endpoint 首先,我们看一个例子: @app ...

  7. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  8. 测开大佬告诉你:如何5分钟快速创建restful风格的API接口-使用django restframework框架

    一.思考❓❔ 1.创建API接口难吗? 软件测试工程师: 只测过API接口, 从没创建过 应该需要掌握一门后端开发语言和后端开发框架吧!? 脑容量有限,想想就可怕 2.如何创建API接口呢? 使用Dj ...

  9. .NET Core WEB API中接口参数的模型绑定的理解

    在.NET Core WEB API中参数的模型绑定方式有以下表格中的几种: 微软官方文档说明地址:https://docs.microsoft.com/zh-cn/aspnet/core/web-a ...

随机推荐

  1. WebGL学习笔记(六):纹理贴图

    只可以绘制纯色的模型是不够的,为了呈现出更真实的模型,我们还需要通过纹理贴图给模型进行上色. 丢失上下文 GPU作为一种公用资源,是会被多个进程同时使用的,在资源不足的情况下(比如PC或手机系统进入休 ...

  2. SQL 对比,移动累计

    数据对比 两种常用模型 1.对比下一行,判断增长.减少.维持现状 -- 建表 drop table sales create table sales( num int, soc int ); inse ...

  3. Zipkin+Sleuth 链路追踪整合

    1.Zipkin 是一个开放源代码分布式的跟踪系统 它可以帮助收集服务的时间数据,以解决微服务架构中的延迟问题,包括数据的收集.存储.查找和展现 每个服务向zipkin报告计时数据,zipkin会根据 ...

  4. 【ARM-Linux开发】Makefile 使用总结

    Makefile 使用总结 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, ...

  5. remote origin already exists解决办法

    如图翻译过来就是:致命:远程来源已经存在 此时,我们可以先 git remote -v 查看远程库信息: 可以看到,本地库已经关联了origin的远程库,并且,该远程库指向GitHub. 解决办法如下 ...

  6. windows系统常用命令

    dir 指定要列出的驱动器,显示当前文件夹下的文件   /?可显示所有命令 显示当前路径下的所有文件的绝对路径,包含子文件夹中的内容 D:\test > dir /b /s /o:n /a:a  ...

  7. 安卓、IOS端AEC密钥加密 Java端密钥解密通用实现(16进制表现形式)

    由于业务需求,需要实现在客户端对重要信息进行加密,在服务端进行解密.客户端包括IOS和安卓的 服务端位Java. 注意密钥 需要保持一致,可以自己定义 . 安卓端加密代码: ============= ...

  8. [转帖]UML类图新手入门级介绍

    UML类图新手入门级介绍 2010-11-12 19:45:00 monkey_d_meng 阅读数 27230  收藏 文章标签: umlinterfaceclass编程扩展更多 分类专栏: 软件工 ...

  9. mysql 初级练习题

    1.题目 第一题: tb_user: User_id User_name User_phone 1 张三 13800138000 2 李四 13800138001 tb_customer: Custo ...

  10. 测试函数——python编程从入门到实践

    测试函数 学习测试,得有测试的代码.下面是一个简单的函数: name_function.py def get_formatted_name(first, last): ""&quo ...