Формат виджета Django DateInput

Я пытаюсь изменить формат даты с mm/dd/yyyy на dd/mm/yyyy в виджете DateInput. Я пытаюсь изменить формат следующим образом.

class Meta:
    model = Patient
    fields = '__all__'
    widgets = {
        'date_of_birth': widgets.DateInput(
            format='%d-%m-%Y',
            attrs={'type': 'date', 'class': 'form-control'})
    }

Я заметил, что если не включать атрибут 'type': 'date', то дата интерпретируется в правильном формате, но в этом случае виджет не отображается, а просто текстовое поле. Поэтому приходится писать дату вручную (включая /).


Я также попробовал изменить settings.py следующим образом, что также не помогло.

LANGUAGE_CODE = 'en-GB'
TIME_ZONE = 'CET'
USE_L10N = True
USE_TZ = True
DATE_INPUT_FORMATS = ('%d/%m/%Y')

В settings.py установите DATE_INPUT_FORMATS следующим образом:

    DATE_INPUT_FORMATS = ['%d/%m/%Y']

А в вашей ModelForm вы можете сделать что-то вроде следующего:

    class ClientDetailsForm(ModelForm):
        date_of_birth = 
        DateField(input_formats=settings.DATE_INPUT_FORMATS)
        
        class Meta:
            model = ModelA

имейте в виду, что форматы должны быть определены в forms.py, а не в models.py.

Проблема была связана с настройками моего компьютера. Язык был установлен на английский (США). Изменение языка на английский (Великобритания) устранило проблему.

Вернуться на верх