Как получить доступ к объекту из вложенного сериализатора? KeyError

Я хочу вернуть requestid и partsid после POST запроса. requestid уже отражен, но вызов partsid посылает мне KeyError. Как я могу получить доступ к этому объекту из отдельной таблицы, ссылающейся как вложенная?

Смотрите код для справки:

 # models.py
​
class requestTable(models.Model):
​
    requestid = models.AutoField(primary_key=True)
    requestname = models.CharField(max_length=100, null=False)
    
class partsTable(models.Model):
​
    partsid = models.AutoField(primary_key=True)
    validatorid = models.ForeignKey(userTable, on_delete=models.CASCADE)
    request = models.ForeignKey(requestTable, related_name='parts', on_delete=models.CASCADE)


# views.py
​
class RequestListCreateView(generics.ListCreateAPIView):
    queryset = requestTable.objects.all()
    serializer_class = RequestCreateSerializer
    filter_backends = [DjangoFilterBackend, SearchFilter]
​
    filterset_fields=['requesterid', 'requestid']
    search_fields= ['requestname']
​
    def create(self, request, *args, **kwargs):
        write_serializer = RequestCreateSerializer(data=request.data)
        write_serializer.is_valid(raise_exception=True)
        instance = self.perform_create(write_serializer)
        headers = self.get_success_headers(write_serializer.data)
​
        return Response({"Request ID": write_serializer.data['requestid']}) #How can I show partsid here? When I add "Parts ID": write_serializer.data['partsid'], it sends me KeyError


#serializers.py
​
class PartSerializer(serializers.ModelSerializer):
    class Meta:
        model = partsTable
        fields = ['partsid', 'validatorid']
​
class RequestCreateSerializer(serializers.ModelSerializer):
    parts=PartSerializer(many=True)
    class Meta:
        model = requestTable
        fields = ['requestid', 'requestname', 'parts']
​
    def create(self, validated_data):
        parts_data = validated_data.pop('parts')
        request = requestTable.objects.create(**validated_data)
        for part_data in parts_data:
            partsTable.objects.create(request=request, **part_data)
        return request
​
class RequestListSerializer(serializers.ModelSerializer):
    parts=PartSerializer(many=True, read_only=True)
    class Meta:
        model = requestTable
        fields = ['requestid', 'requestname', 'parts']

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