在Django应用程序中集成日历小部件

Saa*_*dat 4 django calendar datepicker

如何在我的系统中集成日历小部件?我希望将日历小部件添加到我的表单中,该表单是在Django中设计的.我附上了一个屏幕截图,显示了我想要整合它的位置.此外,我希望日历小部件类似于http://www.dynarch.com/projects/calendar/.

我需要修改哪个文件以及需要使用哪些代码?

在此输入图像描述

Mal*_*qib 11

forms.py

import datetime
from django.forms.extras.widgets import SelectDateWidget
from django.forms import ModelForm, Form

date_field = forms.DateField(widget=SelectDateWidget)
Run Code Online (Sandbox Code Playgroud)

或者还有另一种方式使用Javascript 在自定义表单中使用Django时间/日期小部件 它可能会有所帮助


Saa*_*dat 9

我想到了.您只需要在settings.py中激活管理界面并在forms.py文件中导入AdminDateWidget而不是SelectDateWidget.另外,将以下代码插入到表单的模板文件中.确保将其放在标签之间.这是代码:

<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/static/admin/js/core.js"></script>
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js">        </script>
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
<script type="text/javascript" src="/static/admin/js/actions.min.js"></script>
<script type="text/javascript" src="/static/admin/js/calendar.js"></script>
<script type="text/javascript" src="/static/admin/js/admin/DateTimeShortcuts.js"></script>
Run Code Online (Sandbox Code Playgroud)

希望它对某人有用,欢呼!

萨达特


小智 5

经过长时间的努力,我设法让它在 Django 2.0.2 上工作。您需要在模板的标题中包含以下内容:

<script type="text/javascript" src="/jsi18n/"></script>
<script type="text/javascript" src="{% static 'admin/js/core.js' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/admin/RelatedObjectLookups.js' %}"></script>

<link rel="stylesheet" type="text/css" href="{% static 'admin/css/forms.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/base.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/widgets.css' %}"/>
Run Code Online (Sandbox Code Playgroud)

网址.py

from django.views.i18n import JavaScriptCatalog


urlpatterns = [
    ...
    path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),

]
Run Code Online (Sandbox Code Playgroud)

然后forms.py

from django import forms
from .models import MyModel
from django.contrib.admin.widgets import AdminDateWidget


class TripDetailForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = '__all__'
        widgets = {
            'my_field': AdminDateWidget(),
}
Run Code Online (Sandbox Code Playgroud)

有了这个代码,你一定很高兴。

  • @MarkChackerian 这些行可以用这个标签 {{form.media}} 替换,它要短得多 (2认同)