From 4c7df42bd0218eed90e1cdec0bdc6307ae684ed9 Mon Sep 17 00:00:00 2001 From: LeandroJatai Date: Tue, 27 Jan 2026 17:28:30 -0300 Subject: [PATCH] =?UTF-8?q?add=20valida=C3=A7=C3=A3o=20de=20tipo=20se=20ti?= =?UTF-8?q?po=20n=C3=A3o=20=C3=A9=20objeto=20do=20model=20TipoMateriaLegis?= =?UTF-8?q?lativa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/materia/models.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/sapl/materia/models.py b/sapl/materia/models.py index 63905cb95..efbe1a186 100644 --- a/sapl/materia/models.py +++ b/sapl/materia/models.py @@ -3,6 +3,7 @@ from datetime import datetime from django.contrib.auth.models import Group from django.contrib.contenttypes.fields import GenericRelation from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import ValidationError from django.db import models from django.db.models.functions import Concat from django.template import defaultfilters @@ -412,14 +413,21 @@ class MateriaLegislativa(models.Model): pass if not isinstance(tipo, TipoMateriaLegislativa): + if tipo is None: + raise ValidationError(_("O tipo é obrigatório.")) + + try: + tipo_id = int(tipo) + except (ValueError, TypeError): + raise ValidationError(_("Tipo inválido: '%s'") % tipo) + try: - tipo = TipoMateriaLegislativa.objects.get(pk=tipo) + tipo = TipoMateriaLegislativa.objects.get(pk=tipo_id) except TipoMateriaLegislativa.DoesNotExist: - # Fornece uma mensagem mais informativa quando o tipo não é encontrado raise TipoMateriaLegislativa.DoesNotExist( - _("TipoMateriaLegislativa with pk '%s' does not exist.") % tipo + _("TipoMateriaLegislativa with pk '%s' does not exist.") % tipo_id ) - + # O tipo pode sobrescrever a configuração global if tipo.sequencia_numeracao: numeracao = tipo.sequencia_numeracao