From ae10a3a68e8f2b6220318070896fa19de9307bcf Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 19 Apr 2025 12:00:20 +0000 Subject: [PATCH] Extract instance data when scanning a barcode --- src/backend/InvenTree/InvenTree/models.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py index d2fedce8dc..24d6ea649f 100644 --- a/src/backend/InvenTree/InvenTree/models.py +++ b/src/backend/InvenTree/InvenTree/models.py @@ -10,7 +10,7 @@ from django.db import models from django.db.models import QuerySet from django.db.models.signals import post_save from django.dispatch import receiver -from django.urls import reverse +from django.urls import resolve, reverse from django.urls.exceptions import NoReverseMatch from django.utils.translation import gettext_lazy as _ @@ -958,7 +958,17 @@ class InvenTreeBarcodeMixin(models.Model): if hasattr(self, 'get_api_url'): api_url = self.get_api_url() - data['api_url'] = f'{api_url}{self.pk}/' + data['api_url'] = api_url = f'{api_url}{self.pk}/' + + # Attempt to serialize the object too + try: + match = resolve(api_url) + view_class = match.func.view_class + serializer_class = view_class.serializer_class + serializer = serializer_class(self) + data['instance'] = serializer.data + except Exception: + pass if hasattr(self, 'get_absolute_url'): data['web_url'] = self.get_absolute_url()