old_console/core/fields.py
2024-11-02 14:12:45 +03:00

21 lines
877 B
Python

import itertools
from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models
class IntegerField(models.IntegerField):
def __init__(self, *args, min_value=None, max_value=None, validators=tuple(), **kwargs):
self.min_value, self.max_value = min_value, max_value
if min_value is not None:
validators = itertools.chain((MinValueValidator(min_value),), validators)
if max_value is not None:
validators = itertools.chain((MaxValueValidator(max_value),), validators)
super().__init__(*args, validators=validators, **kwargs)
def formfield(self, **kwargs):
if self.min_value is not None:
kwargs['min_value'] = self.min_value
if self.max_value is not None:
kwargs['max_value'] = self.max_value
return super().formfield(**kwargs)