在DRF中将外键序列化为列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在DRF中将外键序列化为列表相关的知识,希望对你有一定的参考价值。
我想序列化数据
class Main(models.Model):
title = models.CharField()
class ForeignKey(models.Model):
main = models.ForeignKey(Main,on_related='foreign_key')
我想得到像这样的结果
{'title':'hello', 'foreign_key':'['foreign_key1','foreign_key2','foreign_key3']'
我首先想到我可以在'views.py'中使它工作,但有些文档告诉我在序列化程序中有一个类似'listField'的东西,它的例子太少了。
这会是什么样的?
答案
把你的序列化器写成,
#serializers.py
from rest_framework import serializers
class ForeignKeySerializer(serializers.ModelSerializer):
class Meta:
model = ForeignKey
fields = '__all__'
class MainSerializer(serializers.ModelSerializer):
foreign_key = ForeignKeySerializer(source='foreignkey_set', many=True)
class Meta:
model = Main
fields = ("title", "foreign_key")
然后把你的意见写成,
#views.py
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view()
def sample_view(request):
queryset = Main.objects.all()
serializer = MainSerializer(queryset, many=True)
return Response(data=serializer.data)
参考
以上是关于在DRF中将外键序列化为列表的主要内容,如果未能解决你的问题,请参考以下文章
SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML
在 Android Studio 中将嵌套的 JSON 反序列化为 Java