dado un conjunto de modelos típicos:¿Cómo se cambia el widget predeterminado para todos los campos de fecha de Django en un ModelForm?
# Application A
from django.db import models
class TypicalModelA(models.Model):
the_date = models.DateField()
# Application B
from django.db import models
class TypicalModelB(models.Model):
another_date = models.DateField()
...
¿Cómo puede uno cambiar el widget por defecto para todos los DateFields a un MyDateWidget personalizada?
Pregunto porque quiero que mi aplicación tenga un jQueryUI datepicker para ingresar las fechas.
He considerado un campo personalizado que amplía django.db.models.DateField con mi widget personalizado. ¿Es esta la mejor manera de implementar este tipo de cambio general? Tal cambio requerirá la importación específica de un MyDateField especial en cada modelo, que requiere mucha mano de obra, es propenso a errores de desarrollador (es decir, algunos modelos.DateField se realizará), y en mi opinión parece una innecesaria duplicación de esfuerzos. Por otro lado, no me gusta modificar lo que podría considerarse la versión canónica de los modelos.DateField.
Se agradecen los comentarios y la entrada.
+1 si es un comportamiento común que necesitas en múltiples formas con DateTimeFields, esta es la manera SECA de hacerlo. –
Cosas geniales. ¿Dónde se documenta formfield_callback? –
Gracias por esta gran idea! Dentro de la clase SomeForm tengo _se Propiedad lf.instance con el objeto del modelo de la forma actual. ¿Alguien sabe cómo puedo obtener este objeto dentro de la función _make_custom_datefield_? – ramusus