使用django管理中的日期选择器

drkbr07n  于 2023-04-13  发布在  Go
关注(0)|答案(3)|浏览(116)

我是Django的新手,我想找到Django Admin日期选择器小部件。我搜索了,但没有结果。有人能帮助我在我正在做的项目中使用它吗?
我在模型中有一个datetime字段,如下所示:

fin = models.DateTimeField()

当从管理员创建模型时,它会显示小部件,但当我从项目中创建模型时,它不会显示。

8xiog9wr

8xiog9wr1#

在表单中指定小部件,如下所示:

from django.contrib.admin.widgets import AdminDateWidget

class YourForm(forms.ModelForm):
        from_date = forms.DateField(widget=AdminDateWidget())

不要忘记在你的模板中包含脚本和css:

{{ form.media }}
taor4pac

taor4pac2#

如果出于某种原因,您希望在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()))
xbp102n0

xbp102n03#

这在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 }}

相关问题