From 6ebb956c8dac903a72dba0db7a80c13c5c796bd2 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 17 Oct 2021 22:32:03 +1100 Subject: [PATCH] Fix generation of API documentation - Can't use get_object_or_404 in API views! --- InvenTree/build/api.py | 20 ++++++++++++++++---- InvenTree/order/api.py | 7 +++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/InvenTree/build/api.py b/InvenTree/build/api.py index cfc2cab16f..819ffed1b6 100644 --- a/InvenTree/build/api.py +++ b/InvenTree/build/api.py @@ -5,7 +5,6 @@ JSON API for the Build app # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.shortcuts import get_object_or_404 from django.conf.urls import url, include from rest_framework import filters, generics @@ -203,7 +202,12 @@ class BuildUnallocate(generics.CreateAPIView): def get_serializer_context(self): ctx = super().get_serializer_context() - ctx['build'] = get_object_or_404(Build, pk=self.kwargs.get('pk', None)) + + try: + ctx['build'] = Build.objects.get(pk=self.kwargs.get('pk', None)) + except: + pass + ctx['request'] = self.request return ctx @@ -222,7 +226,11 @@ class BuildComplete(generics.CreateAPIView): ctx = super().get_serializer_context() ctx['request'] = self.request - ctx['build'] = get_object_or_404(Build, pk=self.kwargs.get('pk', None)) + + try: + ctx['build'] = Build.objects.get(pk=self.kwargs.get('pk', None)) + except: + pass return ctx @@ -250,7 +258,11 @@ class BuildAllocate(generics.CreateAPIView): context = super().get_serializer_context() - context['build'] = get_object_or_404(Build, pk=self.kwargs.get('pk', None)) + try: + context['build'] = Build.objects.get(pk=self.kwargs.get('pk', None)) + except: + pass + context['request'] = self.request return context diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index 1b294d3e3e..f4ebff4dfb 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -7,7 +7,6 @@ from __future__ import unicode_literals from django.conf.urls import url, include from django.db.models import Q, F -from django.shortcuts import get_object_or_404 from django_filters import rest_framework as rest_filters from rest_framework import generics @@ -235,7 +234,11 @@ class POReceive(generics.CreateAPIView): context = super().get_serializer_context() # Pass the purchase order through to the serializer for validation - context['order'] = get_object_or_404(PurchaseOrder, pk=self.kwargs.get('pk', None)) + try: + context['order'] = PurchaseOrder.objects.get(pk=self.kwargs.get('pk', None)) + except: + pass + context['request'] = self.request return context