Есть два способа сделать это:
- Использование пользовательских валидаторов
- Использование встроенных валидаторов
пользовательских валидаторов:
from django.core.exceptions import ValidationError
def validate_range(value):
if value > Atividade.pontos_XP_maximo:
raise ValidationError('Max value should be %s' % Atividade.pontos_XP_maximo
)
class Atividades_cumpridas(models.Model):
...
...
pontos_xp_ganhos = models.IntegerField(validators=[validate_range])
Использование встроенных валидаторов:
MIN = 0
MAX = Atividade.pontos_XP_maximo
from django.core.validators import MinValueValidator, MaxValueValidator
class Atividades_cumpridas(models.Model):
...
...
pontos_xp_ganhos = models.IntegerField(validators=[MinValueValidator(MIN), MaxValueValidator(MAX)]