From d386c7e37c45eb79b375b64ff7ba371c6eff1816 Mon Sep 17 00:00:00 2001 From: i701 Date: Sat, 5 Apr 2025 16:10:24 +0500 Subject: [PATCH] Add device existence check in CreatePaymentView to handle invalid device IDs --- billing/views.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/billing/views.py b/billing/views.py index 6e7ef2e..be003a0 100644 --- a/billing/views.py +++ b/billing/views.py @@ -1,5 +1,6 @@ # Create your views here. # billing/views.py +from django.shortcuts import get_object_or_404 from .models import Payment, Device from datetime import datetime, timedelta import requests @@ -29,6 +30,13 @@ class CreatePaymentView(StaffEditorPermissionMixin, generics.CreateAPIView): device_ids = data.get("device_ids", []) print(amount, number_of_months, device_ids) + for device_id in device_ids: + device = get_object_or_404(Device, id=device_id) + if not device: + return Response( + {"message": f"Device with id {device_id} not found."}, + status=status.HTTP_400_BAD_REQUEST, + ) if not amount or not number_of_months: return Response( {"message": "amount and number_of_months are required."},