簡體   English   中英

ModelForm中的Django datepicker顯示實例的日期不正確

[英]Django datepicker in ModelForm shows incorrect date with instance

我在forms.py中有一個ModelForm作為-

class MyForm(forms.ModelForm):
from_date = forms.DateField(input_formats=['%d-%m-%Y'],
                           label='From Date',
                           widget=forms.TextInput(
                                   attrs={'placeholder': 'Select a date', 'class': 'datepicker'})
                           )
to_date = forms.DateField(input_formats=['%d-%m-%Y'],
                           label='To Date',
                           widget=forms.TextInput(
                                   attrs={'placeholder': 'Select a date', 'class': 'datepicker'})
                           )

class Meta:
    model = MyModel
    fields = ['from_date', 'to_date', 'reason']

和相關的js-

<script src="https://cdnjs.cloudflare.com/ajax/libs/flatpickr/4.5.2/flatpickr.min.js"></script>
$('.datepicker').flatpickr({
    dateFormat: "d-m-Y",
    allowInput:true,
});

使用創建表單,一切正常,對象成功創建。 但是,在編輯對象時,表單上顯示的初始日期不正確(可能將%Y-%m-%d解析為%d-%m-%Y)。 如何在更新表單中顯示正確的日期? 我嘗試在__init__設置初始字母,但沒有成功。

您應該將DateInput而不是TextInput與format屬性一起使用。

from_date = forms.DateField(input_formats=['%d-%m-%Y'],
                           label='From Date',
                           widget=forms.DateInput(
                                   format='%d-%m-%Y',
                                   attrs={'placeholder': 'Select a date', 'class': 'datepicker'})
                           )

(請記住,該字段負責輸入驗證,小部件負責顯示。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM