Как получить id родительской модели в дочернем сериализаторе?

Как получить родительский id в дочернем сериализаторе?

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']

Я не понимаю, как получить родительский id в дочернем сериализаторе

Просто используйте:

class MaterialSerializer(serializers.ModelSerializer):
    class Meta:
        model = Material
        fields = ['id', 'name', 'description', 'parent_id']

Вы не хотите включать сам parent: это запустит рекурсивный процесс, то есть JSON-блоб будет содержать элемент, его детей, затем родителя, который затем будет содержать детей и таким образом раздуется до бесконечного JSON-блоба.

Вернуться на верх