From 5498d98e38e9503ccb2293243f45bc127e5272e4 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Sat, 19 Apr 2025 22:41:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=E5=A2=9E=E5=8A=A0PositiveDecimalFi?= =?UTF-8?q?eld?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/utils/fields.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/utils/fields.py b/apps/utils/fields.py index f93a46d5..f29fb573 100644 --- a/apps/utils/fields.py +++ b/apps/utils/fields.py @@ -1,5 +1,9 @@ from django.conf import settings from rest_framework import serializers +from django.db.models import DecimalField +from django.core.validators import MinValueValidator +from django.utils.functional import cached_property +from decimal import Decimal class MyFilePathField(serializers.CharField): @@ -8,3 +12,9 @@ class MyFilePathField(serializers.CharField): if 'http' in value: return str(value) return settings.BASE_URL + str(value) + +class PositiveDecimalField(DecimalField): + + @cached_property + def validators(self): + return [MinValueValidator(Decimal('0.0'))] + super().validators \ No newline at end of file