django rest framework如何实现nest field显示,如何保存有外键的字段更新
一步一步深入了。
相关设置技巧如下:
直接nest field显示:
class VersionPoolSerializer(serializers.ModelSerializer):
site_name = serializers.ReadOnlyField(source='site_name.name')
dep_version = DeployPoolSerializer(many=True, required=False, read_only=True)
create_user = serializers.ReadOnlyField(source='create_user.username')
class Meta:
model = VersionPool
fields = ('id', 'name', 'site_name', 'dep_version', 'create_user', 'add_date')
如何自定义更新有外键的记录:
class VersionPoolViewSet(viewsets.ModelViewSet):
"""
This viewset automatically provides `list`, `create`, `retrieve`,
`update` and `destroy` actions.
Additionally we also provide an extra `highlight` action.
"""
queryset = VersionPool.objects.all()
serializer_class = VersionPoolSerializer
authentication_classes = (TokenAuthentication,)
paginate_by = 10
def get_queryset(self):
print (self.request.user, '##################')
print(self.request.auth, '##################')
queryset = self.queryset
return queryset
def create(self, request, *args, **kwargs):
name = request.data['name']
site_name = request.data['site_name']
validated_data = dict()
validated_data['name'] = site_name + "-" + name
validated_data['site_name'] = Site.objects.get(name=site_name)
validated_data['create_user'] = request.user
try:
VersionPool.objects.create(**validated_data)
response_data = {
'name': site_name + "-" + name,
'create_user': request.user.username,
'message': 'version item save success.'
}
return Response(response_data, status=status.HTTP_201_CREATED)
except:
response_data = {
'name': site_name + "-" + name,
'create_user': request.user.username,
'message': 'version item save failed.'
}
return Response(response_data, status=status.HTTP_400_BAD_REQUEST)


django rest framework如何实现nest field显示,如何保存有外键的字段更新的更多相关文章
- EF 外键不显示、如何让外键显示!增、删、改 操作时,外键不显示,只显示导航属性!
一.问题描述:EF 外键不显示.如何让外键显示!增.删.改 操作时,外键不显示,只显示导航属性! EF 添加.增加.插入数据时,外键不显示! 二.解决方案:在根据数据库生成模型的时候,选中“在模型中” ...
- Entity Framework 同一个上下文中,如何进行对同一个实体进行指定字段更新
转自 http://www.cnblogs.com/flyfish2012/archive/2013/03/13/2957125.html 我在上一篇EF更新指定的字段当中介绍了,如何在EF指定字段进 ...
- Entity Framework code first设置不在数据库中生成外键
你现在用的EF是什么版本?我用EF6,你可以重写SqlServerMigrationSqlGenerator的生成外键和更新外键的方法,把不需要的表都过滤掉不就ok了? public class Ex ...
- 深度解析Django REST Framework 批量操作
我们都知道Django rest framework这个库,默认只支持批量查看,不支持批量更新(局部或整体)和批量删除. 下面我们来讨论这个问题,看看如何实现批量更新和删除操作. DRF基本情况 我们 ...
- Django REST Framework(DRF)_第一篇
认识RESTful REST是设计风格而不是标准,简单来讲REST规定url是用来唯一定位资源,而http请求方式则用来区分用户行为. REST接口设计规范 HTTP常用动词 GET /books:列 ...
- Sentry 开发者贡献指南 - Django Rest Framework(Serializers)
Serializer 用于获取复杂的 python 模型并将它们转换为 json.序列化程序还可用于在验证传入数据后将 json 反序列化回 Python 模型. 在 Sentry,我们有两种不同类型 ...
- Django QuerySet 方法梳理 。model外键 多对多的保存
引用:https://feifeiyum.github.io/2017/03/28/python-django-queryset/ 说明 Models 层是 Django 框架中最强大的部分之一, 大 ...
- Django图书管理系统(前端对有外键的数据表增删改查)
图书管理 书籍管理 book name 项目源码位置:https://gitee.com/machangwei-8/learning_materials/tree/master/%E9%A1%B9%E ...
- Django REST framework serializer 嵌套显示绝对路径
在 Django REST framework官方文档提到,当调用Serializer时,应当传入request参数,以便生成完整的url而不是相对url.使用ModelSerializer时requ ...
随机推荐
- notepad++ 换行技巧 log换行
有时候,服务器收集上来的日志,格式很乱,看log很难,如下: java.lang.IllegalStateException: BEvent.init() must be call first\n\t ...
- Webpack标准配置
let htmlWebpckPlugin= require('html-webpack-plugin');//该组件能将src下面提定的html文件与打包后在js文件打包在一起module.expor ...
- Pytest 断言
pytest 断言 断言:一个标准的用例都包含了断言,编写pytest自动化脚本的时候,也需要设置断言 assert使用 常用分三种 1:比较大小与是否相等 2:包含或不包含 3:验证boolean ...
- 指定user镜像安装的磁盘
ironic node-update <node uuid> add properties/root_device='{"name":"/dev/sdb&qu ...
- 201621123033 《Java程序设计》第8周学习总结
第八次作业 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 首先调 ...
- nagios原理及配置详解
1.Nagios如何监控Linux机器 NRPE总共由两部分组成:(1).check_nrpe插件,运行在监控主机上.服务器端安装详见:(2).NRPE daemon,运行在远程的linux主机上(通 ...
- java链接数据库--Mysql
/************************************************************************* > File Name: Mysql.jav ...
- 实时流处理Storm、Spark Streaming、Samza、Flink孰优孰劣
对于一个成熟的消息中间件而言,消息格式不仅关系到功能维度的扩展,还牵涉到性能维度的优化.随着Kafka的迅猛发展,其消息格式也在不断的升级改进,从0.8.x版本开始到现在的1.1.x版本,Kafka的 ...
- 自动设置 rem es模块写法
export default function () { let html = document.documentElement; function onWindowResize() { if (ht ...
- HDU 1863 畅通工程 -Kruskal模版
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...