Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将引导数据采集器(年/月)实现到Django管理过滤器?_Javascript_Jquery_Python 2.7_Django 1.11 - Fatal编程技术网

Javascript 如何将引导数据采集器(年/月)实现到Django管理过滤器?

Javascript 如何将引导数据采集器(年/月)实现到Django管理过滤器?,javascript,jquery,python-2.7,django-1.11,Javascript,Jquery,Python 2.7,Django 1.11,如何在Django管理页面中包含内联引导日历选择器 我正在从以下内容创建自定义表单和模板: 它与文本字段一起工作。我想把日历添加到这个列表中 如何包含此特定表单的JS和CSS文件 如何将所选值传递到表单 YearMonthForm class YearMonthForm(forms.Form): def __init__(self, *args, **kwargs): self.field_name = kwargs.pop('field_name')

如何在Django管理页面中包含内联引导日历选择器

我正在从以下内容创建自定义表单和模板: 它与文本字段一起工作。我想把日历添加到这个列表中

  • 如何包含此特定表单的JS和CSS文件
  • 如何将所选值传递到表单
  • YearMonthForm

    class YearMonthForm(forms.Form):
            def __init__(self, *args, **kwargs):
                self.field_name = kwargs.pop('field_name')
                super(YearMonthForm, self).__init__(*args, **kwargs)
                self.fields['%s__gte' % self.field_name] = forms.DateField()
    
    YearMonthFilter

    class YearMonthFilter(admin.filters.FieldListFilter):
        template = 'maindashboard/filter.html'
    
        def __init__(self, *args, **kwargs):
            field_path = kwargs['field_path']
            self.lookup_kwarg_since = '%s__gte' % field_path
            super(YearMonthFilter, self).__init__(*args, **kwargs)
            self.form = YearMonthForm(data=self.used_parameters, field_name=field_path)
    
        def expected_parameters(self):
            return [self.lookup_kwarg_since]
    
        # no predefined choices
        def choices(self, cl):
            return []
    
        def queryset(self, request, queryset):
            if self.form.is_valid():
                filter_params = {
                    p: self.form.cleaned_data.get(p) for p in self.expected_parameters()
                    if self.form.cleaned_data.get(p) is not None
                }
    
                startBillingDate = filter_params["billingDate__gte"]
                year = startBillingDate.year
                month = startBillingDate.month
                day = calendar.monthrange(startBillingDate.year, startBillingDate.month)[1]
                endDate = date(year, month, day)
                filter_params["billingDate__lte"] = endDate
    
                return queryset.filter(**filter_params)
            else:
                return queryset
    
    filter.html

    {% load i18n admin_static %}
    <h3>{% blocktrans with filter_title=title %} By {{ filter_title }} {% endblocktrans %}</h3>
    
    {% with choices.0 as i %}
    
        <label>Filter by Year-Month:</label>
        <div id='InlineMenu'></div>
    
    <form method="GET" action="">
        {{ spec.form.media }}
        {{ spec.form.as_p }}
        <p class="submit-row">
            {# create hidden inputs to preserve values from other filters and search field#}
            {% for k, v in i.get_query.items %}
                    <input type="hidden" name="{{ k }}" value="{{ v }}">
            {% endfor %}
        <input type="submit" value="{% trans "Search" %}">
        <input type="reset" value="{% trans "Clear" %}">
        </p>
    </form>
    
    {% endwith %}
    
    如何引用此特定表单的css和js文件

    更新

    了解了如何引用此表单/模板的JS和CSS文件。 但是,现在整个管理页面的样式不同了。 日历现在显示在管理员筛选器下。 现在我需要弄清楚如何捕获日期更改事件并提交表单

    @property
        def media(self):
            return forms.Media(
                css= {'all': ('maindashboard/css/bootstrap.min.css', 'maindashboard/css/bootstrap-theme.min.css', 'maindashboard/css/bootstrap-datepicker.min.css',)},
            js = ('maindashboard/js/jquery-3.3.1.slim.min.js', 'maindashboard/js/bootstrap.min.js', 'maindashboard/js/bootstrap-datepicker.js', 'maindashboard/js/bootstrap-datepicker.min.js', 'maindashboard/js/monthPicker.js'))
    
  • css和js文件是从YearMonthForm类中的media方法引用的
  • 选中的年月在monthPicker.js文件中提交表单后传递

    $("#InlineMenu").datepicker().on("changeDate", function(e){
    // Increase month by 1
    $("#id_billingDate__gte").val(e.date.getFullYear() + "-" + (e.date.getMonth()+1) + "-1");
    $("#billing_calendar").submit();
    
    }))

  • $("#InlineMenu").datepicker().on("changeDate", function(e){
    // Increase month by 1
    $("#id_billingDate__gte").val(e.date.getFullYear() + "-" + (e.date.getMonth()+1) + "-1");
    $("#billing_calendar").submit();