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. [译]在Python中,如何拆分字符串并保留分隔符?

    原文来源:https://stackoverflow.com/questions/2136556/in-python-how-do-i-split-a-string-and-keep-the-sepa ...

  2. vscode-tab按键失效变为切换功能的解决方法

    有一种可能是无意中按到了ctrl+m,此时VSCode右下角会出现Tab Moves focus的字样,如下: 用ctrl + m 可以切换两种状态.没有Tab Moves focus字样的时候,就是 ...

  3. java Random 带权重的随机选择

    实际场景中,经常要从多个选项中随机选择一个,不过,不同选项经常有不同的权重. /** * Created by xc on 2019/11/23 * 带权重的随机选择 */ public class ...

  4. 使用自定义注解和AOP管理shiro权限

    一.场景 在使用shiro框架的时候,遇到了这样的需求:本系统有多个用户,每个用户分配不同角色,每个角色的权限也不一致.比如A用户拥有新闻列表的增删改查权限,而B用户只有查看新闻列表的权限,而没有删除 ...

  5. Xamarin.Android UnauthorizedAccessException: Access to the path is denied

    进行文件读写,勾选了权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" / ...

  6. mysql新建用户host使用%但使用localhost无法连接

    今天新建了一个用户,权限也给了,host设置的为% 但是使用该用户连接时出现如下错误 查看用户 mysql> select host,user,password from mysql.user; ...

  7. SpringBoot系列教程web篇之重定向

    原文地址: SpringBoot系列教程web篇之重定向 前面介绍了spring web篇数据返回的几种常用姿势,当我们在相应一个http请求时,除了直接返回数据之外,还有另一种常见的case -&g ...

  8. PIL和Pillow

    关于Pillow与PIL PIL(Python Imaging Library)是Python一个强大方便的图像处理库,名气也比较大.不过只支持到Python 2.7. PIL官方网站:http:// ...

  9. windows系统常用命令

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

  10. Linux下使用matlab在后台默默的运行.m文件(无界面形式)

    Linux下使用matlab在后台默默的运行.m文件(无界面形式)本主在Ubuntu18.04LTS上已经安装了matlab直接运行Matlab$ matlab会启动 matlab,出现启动界面但想要 ...