Django:表单小部件不接受bootstrapdatetimepicker提供的日期格式

时间:2018-01-31 12:26:01

标签: django django-forms bootstrap-datetimepicker

我有以下问题:我有一个使用' bootstrapdatetimepicker'的django表单。日期时间段的小部件。但是,当我尝试发布表单时,它会抛出一种格式无效'错误。

我使用的是本地(荷兰语)时间格式,但我已将这种新格式包含在forms.py代码中(见下文)

    class Meta:
    model = Quotation
    fields = [
        'full_name',
        'organisation',
        'address',            
        'date',
        'type',            
        'description',
        'budget',
    ]

    widgets = {'date': DateTimeInput(
        attrs={'id': 'datetimepicker1'},
        format='%d-%m-%Y %H:%M:%S')}

并在模板中,

    <div class="col-md-12 speaker-form" id="offerte">            
        {% csrf_token %}
        {% crispy form %}
    </div>


<script>

        $(function () {

            $('#datetimepicker1').datetimepicker({
                format:'DD-MM-YYYY HH:mm:ss',
                defaultDate: new Date(),
                icons: {
                    up: "fa fa-chevron-circle-up",
                    down: "fa fa-chevron-circle-down",
                    next: 'fa fa-chevron-circle-right',
                    previous: 'fa fa-chevron-circle-left',                        
                }
            });
        });

    </script>

有谁知道我做错了什么?为什么我的格式&#39; Python和Javascript代码中的覆盖不能正常工作吗?

2 个答案:

答案 0 :(得分:2)

似乎JS库和DateTimeInputField已正确配置为允许新的日期时间格式,但模型无法验证新的日期时间格式。因此,它不会保存数据。

如果这是正确的,可以修改settings.py以允许不同的输入格式。 请确保USE_L10N = False否则它将覆盖下面列出的自定义格式。

将以下内容添加到settings.py的底部:

from django.conf.global_settings import DATETIME_INPUT_FORMATS, DATE_INPUT_FORMATS
DATE_INPUT_FORMATS += ("%d-%m-%Y",)
DATETIME_INPUT_FORMATS += ("%d-%m-%Y %H:%M:%S",)

答案 1 :(得分:1)

我遇到了同样的问题,我通过在ModelForm中定义字段来解决它:

[PXFilterable]
public PXFilteredProcessingOrderBy<DAC, DACFilter, OrderBy<DAC.sortField>> MyDataView;

public virtual IEnumerable myDataView()
{
   yield new DAC();
}

同时将您的javascript格式修改为&#39; dd-mm-yyyy hh:ii:ss&#39;