'DRF create serializer for nested OneToOnefield
I have some Models that have OnetoOnefield in it. Question how can I update them to create serializer method, and create all fields in ModelB and ModelC from ModelA thought OnetoOnefield. If it possible?
Models:
class ModelA(models.Model):
name = models.TextField()
record = models.OneToOneField(ModelB)
class ModelB(models.Model):
description = models.TextField()
link = models.OneToOneField(ModelC)
class ModelC(models.Model):
name = models.TextField()
Serializers:
class RecordSerializer(ModelSerializer):
link = LinkSerializer()
class Meta:
model = ModelB
fields = '__all__'
class TestSerializer(ModelSerializer):
record = RecordSerializer()
class Meta:
model = ModelA
fields = '__all__'
def create(self, validated_data):
record_data = validated_data.pop('record')
record = RecordSerializer.create(RecordSerializer(), validated_data=record_data)
modelA, created = ModelA.objects.create(record=record)
return modelA
View
class TestViewSet(ListModelMixin,
RetrieveModelMixin,
CreateModelMixin,
GenericViewSet):
permission_classes = [IsAuthenticated]
serializer_class = TestSerializer
queryset = ModelA.objects.all()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
