5

カレンダーウィジェットをシステムに統合するにはどうすればよいですか?Djangoで設計されたカレンダーウィジェットをフォームに追加したいと思います。統合したい場所を示すスクリーンショットを添付しています。また、カレンダーウィジェットをhttp://www.dynarch.com/projects/calendar/のようにしたいと思います。

どのファイルを変更する必要があり、どのコードを使用する必要がありますか?

ここに画像の説明を入力してください

4

4 に答える 4

13

forms.py

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

date_field = forms.DateField(widget=SelectDateWidget)

または、Javascriptを使用する別の方法もあります。カスタム形式でDjangoの時刻/日付ウィジェットを使用 すると役立つ場合があります

于 2012-10-08T09:18:20.993 に答える
9

私はそれを考え出した。settings.pyで管理インターフェースをアクティブにし、forms.pyファイルでSelectDateWidgetの代わりにAdminDateWidgetをインポートする必要があります。また、フォームのテンプレートファイルに次のコードを挿入します。必ずタグの間に入れてください。コードは次のとおりです。

<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>

誰かに役立つことを願っています、乾杯!

Saadat

于 2012-10-16T13:52:50.757 に答える
5

長い苦労の末、Django2.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' %}"/>

urls.py

from django.views.i18n import JavaScriptCatalog


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

]

そして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(),
}

このコードを使用すると、うまくいく必要があります。

于 2018-03-03T10:35:52.970 に答える
0

Django_filtersを使用していて、管理カレンダーを日付フィールドに表示したい人のためのヒント(Ex Dateはより大きい)..作成したフィルターでウィジェットを宣言する必要があります。

このような :

class InterviewFilter(django_filters.FilterSet):

    start_date = django_filters.DateFilter(name='date',lookup_expr=('gt'), widget=AdminDateWidget())
    end_date = django_filters.DateFilter(name='date',lookup_expr=('lt'), widget=AdminDateWidget()) 
    registry_year = django_filters.DateRangeFilter(field_name='date', lookup_expr='year')

    class Meta:
        model = Interview
        fields = ['position', 'result', 'status']
于 2018-10-16T20:23:10.740 に答える