
Enrique Sardon Manrique
Preguntacomo coloco esos errors en español?

Gerardo Alberto Soto Alvarez del Castillo
Hola @EmmanuelO este código en que archivo lo agregaste?
# Utilities from django.core.exceptions import ValidationError #Custom validation defcustom_length(value): if len(value) > 12: raise ValidationError('El teléfono no puede tener mas de 12 caracteres') ```python

Cesar David Ramírez Dimaté
Todo lo que mencionan, para que traduzca los errores en español es la manera incorrecta de hacerlo.
Los validators son para colocar mensajes de lógica de negocio a los formularios, no para traducciones.
No se tiene que cambiar el LANGUAGE_CODE a español para tomar las traducciones, ya que una cosa es el idioma que escribiste en tu código (inglés) y el código que vas a traducirlo (español).
Todo lo indica la documentación oficial:
How Django discovers language preference
La traducción según el país lo toma según el idioma en el que está nuestro navegador.
https://github.com/cesardramirez/platzigram/commit/1ef155baad94a4fad16badda498cdb3147b2a4cb
De manera adicional, se deben ejecutar los comandos
makemessages --locale es_co
compilemessages --locale es_CO

Luis Andrés Arce Cárdenas
Pero la manera como el muestra en el template está mejor 😄 me había adelantado jajaja

Luis Andrés Arce Cárdenas
Fijate que en el template te mostraba los errores con el nombre del campo es decir number_phone y el error.
{% if form.errors.phone_number %} <input class="form-control is-invalid" type="text" name="phone_number" placeholder="Phone number" value="{{ profile.phone_number }}"/> <div class="invalid-feedback"> {{ form.errors.phone_number }} </div> {% else %} <input class="form-control" type="text" name="phone_number" placeholder="Phone number" value="{{ profile.phone_number }}"/> {% endif %}
Lo importante es el if como llamo al error. El resto es por hacerlo mas bonito con bootstrap 😄

Luis Andrés Arce Cárdenas
Puedes hacer eso
# Django from django import forms class ProfileForm(forms.Form): """Profile Form""" website = forms.URLField(max_length=200, required=True) biography = forms.CharField(max_length=500, required=False) phone_number = forms.CharField(max_length=20, required=False, error_messages={ 'max_length': 'Logitud máxima 20', }) picture = forms.ImageField()

Emmanuel Octavio Martinez C
Encontré una forma.
Agregas estas líneas para definir un nuevo validador. Supongo que se pueden utilizar los validadores existentes, pero no he encontrado como customizarlos:
# Utilities from django.core.exceptions import ValidationError #Custom validation def custom_length(value): if len(value) > 12: raise ValidationError('El teléfono no puede tener mas de 12 caracteres')
y por ejemplo ya en la clase ProfileForm en la parte del teléfono quedaría así:
class ProfileForm(forms.Form): """Form to validate the user's data in update_profile""" website = forms.URLField(max_length=200, required=True) biography = forms.CharField(max_length=500, required=True) phone_number = forms.CharField(required=False, validators=[custom_length]) picture = forms.ImageField(required=False)
Lo escribí partiendo de aquí: