首页 > 解决方案 > Django Bootstrap Date Picker 默认值/todayBtn 问题

问题描述

我使用 Django 和 Bootstrap 创建了一个日期选择器。但是,当单击输入字段右侧的日历字段时,日历会跳转到默认值:06/Fr/yyyy。我尝试将todayBtn属性设置为 True 但产生了错误。示例如下图所示:

在此处输入图像描述

我的模型.py:

class TimeInterval(models.Model):
    time_interval = models.DateField()

表格.py:

from .models import TimeInterval
from bootstrap_datepicker_plus import DatePickerInput

class TimeIntervalForm(forms.ModelForm):

    date = forms.DateField(
        widget=DatePickerInput(
                options={
                    "format": "mm/dd/yyyy",
                    # "todayHighlight": True,
                    # "todayBtn": True,
                }
            )
    )
    class Meta:
        model = TimeInterval
        fields = '__all__'

视图.py:

def datepicker_form_view(request):
    return render(request, "datepicker_form.html", {
        "time_interval_form": TimeIntervalForm(),
    })

还有我的 HTML 文件:

{% load bootstrap4 %}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}

<form action="." method="POST">{% csrf_token %}
    {% bootstrap_form time_interval_form %}
    {{time_interval_form.media }}
    <input type="submit" value="Submit">
</form>

我遇到了关于该属性的类似问题todayHighlight,但 OP 使用了 JavaScript/jQuery,因此建议他使用 jQuery 选择添加该属性。我觉得在我的情况下,用一个<script>部分和一个 jQuery 选择来扩展 HTML 代码只是为了让一个属性工作是一种过度杀伤——必须有一种更方便的方法来解决这个问题,我不知道。

标签: pythondjangobootstrap-4

解决方案


尝试这样的事情

date = forms.DateTimeField(error_messages={'invalid': 'Wrong date.'},
                       required=False, widget=DateInput(attrs={
                               'class': 'datepicker form-control input-sm ',
                               'data-trigger': 'focus'}))

或者

date = forms.DateTimeField(required=False,
                       widget=DateInput(attrs={'class': 'form-control input-sm'},
                                        format=('%Y-%m-%d')))

推荐阅读