当前位置:网站首页>drf-树形结构的model的序列化显示
drf-树形结构的model的序列化显示
2022-08-08 20:53:00 【Chise1】
目录
概述
来源:https://stackoverflow.com/questions/13376894/django-rest-framework-nested-self-referential-objects
最近开发的时候遇到一个有意思的东西,需要组织架构,然后组织架构是树状的,需要返回组织架构的树。
百度上查到两种方法
方法一:
这种方法完全看不懂是啥,但是就是能用,难以理解。
首先,定义您的可重用RecursiveField类
class RecursiveField(serializers.Serializer):
def to_representation(self, value):
serializer = self.parent.parent.__class__(value, context=self.context)
return serializer.data
然后,对于您的序列化程序,使用RecursiveField序列化“ replies”的值
class CommentSerializer(serializers.Serializer):
replies = RecursiveField(many=True)
class Meta:
model = Comment
fields = ('replies, ....)
方法二:
这种方法就很好理解了。
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ('id', 'name', 'parentid', 'subcategories')
def get_fields(self):
fields = super(CategorySerializer, self).get_fields()
fields['subcategories'] = CategorySerializer(many=True)
return fields
边栏推荐
猜你喜欢
随机推荐
投资基金定投安全吗
sudo控制用户权限实战操作
Redis Bloom Filter
Kotlin中IO流
fillder4 keeps prompting the system proxy was changed, watch me solve it
Kotlin annotations
0-1 背包问题
记录非Gui模式Jmeter使用
单片机——DHT11 温湿度传感器
头条二面:你确定ThreadLocal真的会造成内存泄露?
昇腾Ascend 随记 —— TensorFlow 模型迁移
ssh 登录connectction reset by peer
Mysql management commands
并发和并行——从线程,线程池到任务
一下科技:未来短视频行业发展呈四大趋势
跨域问题 什么时候出现跨域问题 如何解决跨域问题
Flask 教程 第一章:Hello, World!
常见的病毒(攻击)分类
利用shell脚本同时编译生成多个cmake工程
Kotlin解析String路径小知识