2014-01-28 58 views
3

在我的模型中,我有一個Datefield。所以我想使用Datepicker。如何使用Django-Admin Datepicker?CreateView中的DatepickerWidget

我已經找到了一個在窗體中做這個事情的例子,但我只設計了一個模型。 是否可以在我的模型中定義這個小部件?

+0

是否必須是admin-datepicker或者您可以使用任何datepicker js插件? – mariodev

+0

我使用datepicker窗體jquery-ui。 – spitzbuaamy

回答

2

您可以使用get_form方法重寫控件屬性:

class MyCreateView(CreateView): 
    def get_form(self, form_class): 
     form = super(MyCreateView, self).get_form(form_class) 
     form.fields['date_field'].widget.attrs.update({'class': 'datepicker'}) 
     return form 
+0

對於django 1.10,get_form的form_class接受默認的None,所以它可以被跳過。 [參考文獻](https://github.com/django/django/blob/711123e1cdaf3b08c876c045d8d38decdc7a63d3/django/views/generic/edit.py#L30)。另外,爲了完全覆蓋這個小部件,而不是隻更新html class屬性,可以使用'form.fields ['field_name']。widget = SomeNewWidget' – shadi

1

我會建議你創建的那個形式文件導入的ModelForm, 管理員日期選擇控件

from django.contrib.admin.widgets import AdminDateWidget 

,並確定該字段的小部件使用attrs = AdminDateWidget

並在模板中放置{{form.media}}以包含widget中的javascript和css文件