我是 Django 的新手,我正在尝试查找 Django Admin 日期选择器小部件。我有搜索但没有结果。谁能帮我在我正在进行的项目中使用它?
我的模型中有一个日期时间字段,如下所示:
fin = models.DateTimeField()
当从管理员创建模型时会显示小部件,但是当我从项目中创建模型时它不会。
按如下方式在您的表单中指定小部件:
from django.contrib.admin.widgets import AdminDateWidget
class YourForm(forms.ModelForm):
from_date = forms.DateField(widget=AdminDateWidget())
不要忘记在模板中包含脚本和 css:
{{ form.media }}
如果出于某种原因您希望将日期选择器与 PostgreSQL
DateRangeField
一起使用,您可以这样做:
from django.contrib.admin.widgets import AdminDateWidget
from django.contrib.postgres.forms.ranges import DateRangeField,
RangeWidget
class YourForm(forms.ModelForm):
date_range = DateRangeField(widget=RangeWidget(AdminDateWidget()))
这在 Django-admin 中对我有用
class CustomAdminDateWidget(forms.DateInput):
class Media:
js = ("/admin/jsi18n/",
"/static/admin/js/vendor/jquery/jquery.js",
"/static/admin/js/calendar.js",
"/static/admin/js/jquery.init.js",
"/static/admin/js/admin/DateTimeShortcuts.js",
"/static/admin/js/core.js")
def __init__(self, attrs=None, format=None):
attrs = {'class': 'vDateField', 'size': '10', **(attrs or {})}
super().__init__(attrs=attrs, format=format)
class DateRangeForm(forms.Form):
start_date = forms.DateField(label='From Date', widget=CustomAdminDateWidget)
end_date = forms.DateField(label='To Date', widget=CustomAdminDateWidget)
{{ form.media }}