2012-03-07 36 views
13

Bazı Django 1.3 modellerinde DateField özellikleri var. Bir form oluşturulduğunda, düz metin alanı yerine jQuery UI Datepicker kullanmak istiyorum. Yeni widget'lar yaratabileceğimi anlıyorum ama nasıl olduğunu anlamıyorum. Ayrıca, Django için zaten böyle bir şey yapılıp yapılmadığından emin değilim (Ben googled, şans yok).jQuery UI Datepicker bir Django Widget olarak nasıl kullanılır?

JQuery UI Datepicker için birden fazla model (ve sayfa) arasında yeniden kullanabileceğim bir Django Widget'i nasıl oluşturulur?

cevap

0

DateInput'a bakmanız gerekir - widget'inizi bundan devralmanız gerekir. Ayrıca admin widgets'a bakın - eklenmiş bazı JS'ler var. Yani DateInput'u al, biraz JS ekle ve işin bitti.

11
JQueryUI çok iyi bir UI seçici toplayıcısı var. Burada alabilirsiniz: http://jqueryui.com

Say örneğin sahip aşağıdaki formu: Buradan

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

size şablonu içinde adresinin alana JQuery tarih widget'ı bağlamak istiyorum.

Burada, şablonunuza DateForm geçişini yaptığınızı ve JQuery yolunuzun doğru olduğunu varsayıyorum.

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

o myDateid_ öncesinde unutmayınız. Django bunu şeffaf bir şekilde yapıyor, bu yüzden aşağıdaki gibi eşleştirdiğinizden emin olun: id_myDate.

Bu yardımcı olur umarım.

+0

yerine bir model formu kullanıp kullanmadığımı söyleyebilir misiniz? – user2086641

+0

datepicker öğesini nasıl işlediğimi ve ayrıca name = "myDate" değerini eklemiştim "işe almak için. – FrontierPsycho

+0

@ user2086641 myDate alanını model formundan hariç tutmalıyım (google, bu kadar kolay) ve cevapları önerdiği gibi sayfaya elle yerleştirmelisiniz. – FrontierPsycho