2012-03-07 25 views
13

Algunos de mis modelos Django 1.3 tienen propiedades DateField. Cuando se genera un formulario, me gustaría utilizar jQuery UI Datepicker en lugar de un campo de texto sin formato. Entiendo que podría crear nuevos widgets, pero no entiendo cómo. Además, no estoy seguro de si algo como esto ya se ha hecho para Django (lo busqué en Google, no hay posibilidad).Cómo usar jQuery UI Datepicker como un widget de Django?

Cómo crear un widget de Django que pueda volver a utilizar en varios modelos (y páginas) para jQuery UI Datepicker?

Respuesta

0

Debería mirar en DateInput - tendrá que heredar su widget de ella. También mire en admin widgets - hay algunos JS anexados. Así que tome DateInput, agregue algunos JS y listo.

11

JQueryUI tiene un muy buen selector de UI de fecha. Puede obtenerlo aquí: http://jqueryui.com

decir, por ejemplo que tiene la siguiente forma:

class DateForm(forms.Form): 
    myDate = forms.DateField() 

Desde aquí se quieren unir el widget fecha de jQuery con su campo desde dentro de su plantilla.

Supongo que aquí está pasando el DateForm a su plantilla y su (s) ruta (s) a JQuery son correctas.

<head> 
    <link rel="stylesheet" href="/themes/base/jquery.ui.all.css"> 
    <script src="/jquery.js"></script> 
    <script src="/ui/jquery.ui.core.js"></script> 
    <script src="/ui/jquery.ui.widget.js"></script> 
    <script src="/ui/jquery.ui.datepicker.js"></script> 
    <script> 
    $(function() { 
     $("#id_myDate").datepicker(); 
    }); 
    </script> 
</head> 
<body> 

<p>Date: <input type="text" id="id_myDate"></p> 

</body> 

Tenga en cuenta que myDate está precedido por id_. Django lo hace de forma transparente, así que asegúrate de combinarlo como tal: id_myDate.

Espero que esto te ayude.

+0

me puede decir si estoy usando un formulario modelo en lugar de , cómo renderizar el datepicker – user2086641

+0

Intenté esto, y también tuve que agregar name = "myDate "para que funcione". – FrontierPsycho

+0

@ user2086641 Creo que debe excluir el campo myDate del formulario modelo (google it, es fácil) y colocarlo manualmente en la página como sugiere la respuesta. – FrontierPsycho