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上一篇文章中也有介绍,有需要的可以去看一哈。。。

最新文章

  1. Android基础测试题(四)
  2. MySQL性能优化的最佳21条经验
  3. sharepoint2010问卷调查(3)-实现问卷的开始和结束时间(采用自定义字段类型)
  4. Python 培训之MySql
  5. haploview出现"invalid affected status"的解决方法
  6. JS语法部分
  7. C#快速学习笔记(译)续一
  8. glDatePicker-2.0 日历插件
  9. JAVA简单的UI设计
  10. [置顶] 搭建apache+tomcat+memcached集群环境
  11. IPSec VPN实验
  12. WebApi client 的面向切面编程
  13. python学习第三个坑
  14. UWP 手绘视频创作工具技术分享系列 - 文字的解析和绘制
  15. [算法竞赛入门经典] 象棋 ACM/ICPC Fuzhou 2011, UVa1589 较详细注释
  16. kali linux 安装virtualbox报错(rc=-1908)
  17. blfs(systemd版本)学习笔记-安装lrzsz软件包实现ssh远程传输文件到lfs系统
  18. C++学习4-面向对象编程基础(面向对象概念,定义类,定义对象)
  19. Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)的区别(转)
  20. fedora 中从命令行中直接打开资源管理器

热门文章

  1. bat文件重命名指定路径下文件
  2. 在fedora 31 安装docker
  3. linux设置root密码&进入不了root
  4. JS系列:三元运算符与循环
  5. 推荐系统中的协同滤波算法___使用SVD
  6. 小程序onShow
  7. [转帖]dfs和bfs
  8. Java基础知识点总结(四)
  9. Python进阶:并发编程之Asyncio
  10. golang使用json格式实现增删查改