Сериализация внешних ключей в виде списка в DRF - PullRequest
0 голосов
/ 12 марта 2019

Я хочу сериализовать данные

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', в котором слишком мало примеров ..

Что бы здесь было?

1 Ответ

1 голос
/ 12 марта 2019

Напишите ваш сериализатор как,

#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)

Ссылки

  1. DRF-Сериализатор
  2. DRF-просмотры
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...