Как использовать JQuery UI Datepicker в качестве виджета Django? - PullRequest
13 голосов
/ 07 марта 2012

Некоторые из моих моделей Django 1.3 имеют свойства DateField.Когда создается форма, я бы хотел использовать DatePicker пользовательского интерфейса jQuery вместо простого текстового поля.Я понимаю, что могу создавать новые виджеты, но не понимаю как.Кроме того, я не уверен, что что-то подобное уже было сделано для Django (я гуглил, нет шансов).

Как создать виджет Django, который я могу использовать для нескольких моделей (и страниц) дляDateUpicker пользовательского интерфейса jQuery?

Ответы [ 2 ]

11 голосов
/ 07 марта 2012

JQueryUI имеет очень хороший инструмент для выбора даты. Вы можете получить его здесь: http://jqueryui.com

Скажем, например, у вас есть следующая форма:

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

Отсюда вы хотите привязать виджет даты JQuery к вашему полю из вашего шаблона.

Я предполагаю, что здесь вы передаете DateForm своему шаблону, и ваш путь к JQuery верен.

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

Обратите внимание, что myDate предшествует id_. Django делает это прозрачно, поэтому убедитесь, что вы соответствуете так: id_myDate.

Надеюсь, это поможет вам.

0 голосов
/ 07 марта 2012

Вы должны посмотреть на DateInput - вам нужно унаследовать ваш виджет от него. Также посмотрите на административные виджеты - там есть несколько JS-приложений. Итак, возьмите DateInput, добавьте JS, и все готово.

...