как изменить формат даты по умолчанию AAAA-MM-DD на дд/мм/гггг в Django?

StackOverflow https://stackoverflow.com/questions/1677035

  •  16-09-2019
  •  | 
  •  

Вопрос

Мой региональный формат даты — дд/мм/гггг, а Django запрашивает AAAA-MM-DD.

когда пользователь вводит 11.04.2009, Django вызывает:

_('Enter a valid date in YYYY-MM-DD format.')) 

Я использую простое поле ввода HTML type="text", а не form.DateField

Спасибо :)

Это было полезно?

Решение

Я предполагаю, что вы используете forms.DateField.Если да, то вам необходимо предоставить input_formats аргумент такой:

class MyForm(forms.Form):
    start_date = forms.DateField(input_formats=['%d/%m/%Y'])

input_formats просто принимает список форматов, которые вы хотите принять.

Видеть http://docs.djangoproject.com/en/dev/ref/forms/fields/#datefield Чтобы получить больше информации.

Другие советы

Судя по сообщению и комментариям ОП, похоже, что здесь есть нечто большее, чем просто использование input_formats для поля даты, хотя вы захотите это сделать.Сообщение «Введите допустимую дату в формате ГГГГ-ММ-ДД» является исключением и НЕТ ошибка проверки формы.Вы получите это исключение, если попытаетесь сохранить экземпляр модели, используя строку даты, отличную от «ГГГГ-ММ-ДД».

Что необходимо, так это использовать DateField в форме, а затем создать экземпляр модели с использованием очищенных данных, которые являются объектом datetime.Похоже, что ОП создавал экземпляр модели с помощью строки, а не объекта datetime.

В этом разделе документации Django обсуждается подготовка данных DateField:https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top