Me gustaría crear widgets que agreguen clases específicas al marcado de elemento cuando el campo asociado tenga errores.Django: ¿Cómo verificar si hay errores de campo dentro de la definición de widget personalizado?
Tengo dificultades para encontrar información sobre cómo verificar si un campo tiene errores asociados, desde el código de definición del widget.
Por el momento tengo el siguiente código de artilugio stub (el artilugio final usará marcas más complejas).
from django import forms
from django.utils.safestring import mark_safe
class CustomTextWidget(forms.Widget):
def render(self, name, value, attrs):
field_has_errors=False # change to dynamically reflect field errors, somehow
if field_has_errors:
error_class_string="error"
else:
error_class_string=""
return mark_safe(
"<input type=\"text\" class=\"%s\" value=\"%s\" id=\"id_%s\" name=\"%s\">" % (error_class_string, value, name, name)
)
¿Alguien puede arrojar luz sobre una manera sensata para rellenar los field_has_errors booleanas aquí? (o tal vez sugiera una mejor manera de lograr lo que estoy tratando de hacer). Gracias por adelantado.
Este es definitivamente el camino a seguir y es realmente el enfoque que siempre tomo en mi propio trabajo. El ejemplo que proporcioné fue ensamblado en un esfuerzo por mostrar el paso de atributos a los widgets (no solo widgets personalizados), sin embargo, debe evitarse ya que no es SECO. –
dos años después me ayudó. Gracias :) – Houman
¿Por qué no pasan la información del error al widget? Parece que sería razonable para mí, ya que es común presentar errores justo al lado de la entrada para el campo. – Andy