Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

317
Views
¿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 answers
Answer question

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 Report

0

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

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!