在我的模型中,我有一个日期字段。所以我想使用日期选择器。如何使用 Django-Admin 日期选择器?
我已经找到了在表单中执行此操作的示例,但我只设计了一个模型。 是否可以在我的模型中定义这个小部件?
您可以使用
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
这是基于其他答案的完整、现代的解决方案:
from django.views.generic import CreateView
from django.contrib.admin.widgets import AdminDateWidget
from .models import MyModel
class MyModelCreateView(CreateView):
template_name = 'form.html'
model = MyModel
fields = ['date_field', ...]
def get_form(self, form_class=None):
form = super(MyModelCreateView, self).get_form(form_class)
form.fields['date_field'].widget = AdminDateWidget(attrs={'type': 'date'})
return form
我建议你创建一个模型, 在该表单文件中导入管理日期选择器小部件
from django.contrib.admin.widgets import AdminDateWidget
并使用 attrs=AdminDateWidget 定义该字段的小部件
并在模板中放入 {{ form.media }} 以在 html 中包含该小部件 javascript 和 css 文件
@Adam 非常感谢你,我一直在寻找正确的解决方案。这很完美!