From 7d577fdeb832761a6b59fa049b588bbcb89be16a Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 1 Dec 2021 23:35:20 +0100 Subject: [PATCH] add serializer mixin to check reference field --- InvenTree/InvenTree/serializers.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py index 3785cfb292..3a237e4280 100644 --- a/InvenTree/InvenTree/serializers.py +++ b/InvenTree/InvenTree/serializers.py @@ -16,6 +16,7 @@ from django.conf import settings from django.contrib.auth.models import User from django.core.exceptions import ValidationError as DjangoValidationError from django.utils.translation import ugettext_lazy as _ +from django.db import models from djmoney.contrib.django_rest_framework.fields import MoneyField from djmoney.money import Money @@ -239,6 +240,19 @@ class InvenTreeModelSerializer(serializers.ModelSerializer): return data +class ReferenceIndexingSerializerMixin(): + """ + This serializer mixin ensures the the reference is not to big / small + for the BigIntegerField + """ + def validate_reference(self, value): + if int(value) < -models.BigIntegerField.MAX_BIGINT: + raise serializers.ValidationError('reference is to to small') + if int(value) > models.BigIntegerField.MAX_BIGINT: + raise serializers.ValidationError('reference is to to big') + return value + + class InvenTreeAttachmentSerializerField(serializers.FileField): """ Override the DRF native FileField serializer,