How to accept localized date format (e.g dd/mm/yy) in a DateField on an admin form?

后端 未结 2 1911
深忆病人
深忆病人 2021-01-06 04:22

Is it possible to customize a django application to have accept localized date format (e.g dd/mm/yy) in a DateField on an admin form ?

I have a model class :

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-01-06 05:03

    The fix proposed by Ben is working but the calendar on the right is not shown anymore.

    Here is an improvement. The calendar will still be shown and the date will be displayed with the %d%%M/%Y format.

    from django.forms.models import ModelForm
    from django.contrib.admin.widgets import AdminDateWidget
    from django.forms.fields import DateField  
    
    class MyModelForm(ModelForm):
        date = DateField(input_formats=['%d/%m/%Y',],widget=AdminDateWidget(format='%d/%m/%Y'))
        class Meta:
            model = MyModel
    
    class MyModelAdmin(admin.ModelAdmin):
        form = MyModelForm
    

    When clicking on a day in the calendar, the value of the field has the %Y-%m-%d format but is is accepted as a valid date format.

    PS: Thanks to Daniel Roseman for his answer to this question

提交回复
热议问题