How to use jQuery UI Datepicker as a Django Widget?

徘徊边缘 提交于 2019-12-03 16:32:10

问题


Some of my Django 1.3 models have DateField properties. When a form is generated, I'd like to use the jQuery UI Datepicker instead of a plain text field. I understand that I could create new widgets but I don't understand how. In addition, I am not sure if anything like this has already been done for Django (I googled it, no chance).

How to create a Django Widget that I can reuse across multiple models (and page) for the jQuery UI Datepicker?


回答1:


JQueryUI has a very good date UI picker. You can get it here: http://jqueryui.com

Say for example you have the following form:

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

From here you want to bind the JQuery date widget to your field from within your template.

I am assuming here you are passing the DateForm to your template and your path(s) to JQuery are correct.

<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>

Please note that myDate is preceded by id_. Django does this transparently so make sure you match it as such: id_myDate.

Hope this helps you.




回答2:


You should look on DateInput - you'll need to inherit your widget from it. Also look on admin widgets - there are some JS appended. So take DateInput, add some JS and you're done.



来源:https://stackoverflow.com/questions/9594081/how-to-use-jquery-ui-datepicker-as-a-django-widget

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!