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.

Back to Top