How to get parent model id in child serializer?
How to get parent id in child serializer?
class Parent(models.Model):
name = models.CharField('')
date = models.DateField('')
class Material(models.Model):
name = models.CharField('')
description = models.TextField('')
parent = models.ForeignKey(Parent, on_delete=models.CASCADE)
serializer = ParentSerializer(data=item)
if serializer.is_valid(raise_exception=True):
serializer.save()
class MaterialSerializer(serializers.ModelSerializer):
parent = ?
class Meta:
model = Material
fields = ['id', 'name', 'description', 'parent']
class ParentSerializer(serializers.ModelSerializer):
material = MaterialSerializer(many=True)
class Meta:
model = Parent
fields = ['name', 'date', 'material']
I dont understand how get parent id in child serializer
Just use:
class MaterialSerializer(serializers.ModelSerializer):
class Meta:
model = Material
fields = ['id', 'name', 'description', 'parent_id']
You don't want to include the parent itself: this would start a recursive process, which means the JSON blob would contain an item, its children, then then contain the parent, that then contain the children and thus blow up to an infinite JSON blob.