diff --git a/store/migrations/0034_alter_promocode_discount.py b/store/migrations/0034_alter_promocode_discount.py new file mode 100644 index 0000000..f1fbe6d --- /dev/null +++ b/store/migrations/0034_alter_promocode_discount.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.2 on 2023-07-06 21:32 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('store', '0033_remove_user_manager_id'), + ] + + operations = [ + migrations.AlterField( + model_name='promocode', + name='discount', + field=models.DecimalField(decimal_places=2, max_digits=10, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)], verbose_name='Скидка'), + ), + ] diff --git a/store/models.py b/store/models.py index fb17382..6d76452 100644 --- a/store/models.py +++ b/store/models.py @@ -11,6 +11,7 @@ from django.contrib.admin import display from django.contrib.auth.hashers import make_password from django.contrib.auth.models import AbstractUser, UserManager as _UserManager from django.core.files.base import ContentFile +from django.core.validators import MinValueValidator, MaxValueValidator from django.db import models from django.db.models import F, Case, When, DecimalField, Prefetch from django.db.models.lookups import GreaterThan @@ -135,7 +136,8 @@ class PromocodeQuerySet(models.QuerySet): class Promocode(models.Model): name = models.CharField('Название', max_length=100, unique=True) - discount = models.DecimalField('Скидка', max_digits=10, decimal_places=2,) + discount = models.DecimalField('Скидка', max_digits=10, decimal_places=2, + validators=[MinValueValidator(0), MaxValueValidator(100)]) free_delivery = models.BooleanField('Бесплатная доставка', default=False) # freedelivery no_comission = models.BooleanField('Без комиссии', default=False) # nocomission is_active = models.BooleanField('Активен', default=True)