Как мне сериализовать это JSON?
{
"Data":{
"Age": 21,
"Year": 2012,
"Address": "123 Sesame"
}, "Data2": {
"Color": "Blue",
"Number": 2,
"Address": "123 Sesame"
}
}
Мне нужна помощь с сериализаторами
from rest_framework import serializers
from .models import Data, DataTwo, Form
class DataSerializer(serializers.Serializer):
Age = serializers.IntegerField(source='age')
Year = serializers.IntegerField(source='year')
Address = serializers.CharField(max_length=50, source='address')
def create(self, validated_data):
return Data.objects.create(**validated_data)
class DataTwoSerializer(serializers.Serializer):
Color = serializers.CharField(max_length=50, source='color')
Number = serializers.IntegerField(source='number')
Address = serializers.CharField(max_length=50, source='address')
def create(self, validated_data):
return DataTwo.objects.create(**validated_data)
class FormSerializer(serializers.Serializer):
Data = DataSerializer(source="*")
Data2 = DataTwoSerializer(source="*")
def create(self, validated_data):
return Form.objects.create(**validated_data)
Также мои модели:
from django.db import models
# Create your models here.
class Data(models.Model):
age = models.IntegerField()
year = models.CharField(max_length=50)
address = models.CharField(max_length=50)
class DataTwo(models.Model):
color = models.CharField(max_length=50)
number = models.IntegerField()
address = models.CharField(max_length=50)
class Form(models.Model):
data = models.ForeignKey(Data, default="null", on_delete=models.CASCADE)
data_two = models.ForeignKey(DataTwo, default="null", on_delete=models.CASCADE)
Если Я просматриваю validated_data от FormSerializer и получаю следующее:
{'Data': OrderedDict([('age', 21), ('year', 2012), ('address', '123 Sesame')]), 'Data2': OrderedDict([('color', 'Blue'), ('number', 2), ('address', '123 Sesame')])}
У меня сложилось впечатление, что созданный сериализатор позаботится об этом. Я не уверен, как go об этом. Чувство действительно потеряно