Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

320
Visualizações
¿Dónde se almacena el valor de retorno de una función de validación de Django?

En mi aplicación django, este es mi validator.py

 from django.core.exceptions import ValidationError from django.core.validators import URLValidator def validate_url(value): url_validator = URLValidator() url_invalid = False try: url_validator(value) except: url_invalid = True try: value = "http://"+value url_validator(value) url_invalid = False except: url_invalid = True if url_invalid: raise ValidationError("Invalid Data for this field") return value

que se utiliza para validar esto:

 from django import forms from .validators import validate_url class SubmitUrlForm(forms.Form): url = forms.CharField(label="Submit URL",validators=[validate_url])

Cuando ingreso una URL como google.co.in e imprimo el valor justo antes de devolverlo desde validate_url, imprime http://google.co.in pero cuando intento obtener los cleaned_data['url'] en mis vistas, todavía muestra google.co.in . Entonces, ¿dónde va el valor devuelto por mi validador y necesito editar explícitamente las funciones clean () para cambiar el valor del campo de URL?

El documento dice lo siguiente:

El método clean() en una subclase de campo es responsable de ejecutar to_python(), validate() y run_validators() en el orden correcto y propagar sus errores. Si, en cualquier momento, alguno de los métodos genera ValidationError, la validación se detiene y se genera ese error. Este método devuelve los datos limpios, que luego se insertan en el diccionario clean_data del formulario.

Todavía no estoy seguro de dónde va el valor de retorno del validador y si es posible cambiar el dictado de datos limpios usando el validador.

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

De los documentos :

Un validador es simplemente un objeto o función invocable que toma un valor y simplemente no devuelve nada si el valor es válido o genera un error de validación si no lo es.

El valor devuelto simplemente se ignora.

Si desea poder modificar el valor, puede usar el campo clean_ en los formularios como se describe aquí :

 class SubmitUrlForm(forms.Form): url = ... def clean_url(self): value = self.cleaned_data['url'] ... return updated_value

Los validadores solo sirven para validar los datos, por lo que se ignora el valor de retorno del validador.

Está buscando "limpieza" de datos (transformándolos en una forma común). En Django, los formularios son responsables de la limpieza de datos.

about 4 years ago · Santiago Trujillo Relatório

0

Utilice URLField . Valida el valor y antepone http si es necesario.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda