Вы передаете набор запросов вместо фактического экземпляра в ваш сериализатор (отсюда и ошибка, которую вы получаете AttributeError: 'QuerySet' object has no attribute '_meta'
).
Вы можете обновить свой код, чтобы сделать что-то похожее на это:
def sensor(request):
if request.method == 'POST':
data = JSONParser().parse(request)
# Fetches the first result of Sensor with name data['name']
sensor = Sensor.objects.filter(name=data['name']).first()
if sensor:
serializer = SensorDetailSerializer(instance=sensor, data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
else:
return JsonResponse(serializer.errors, status=400)
else:
serializer = SensorDetailSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
else:
return JsonResponse(serializer.errors, status=400)