Django 1.2: даты в формах администратора не работают с локалями (I10N = True) - PullRequest
2 голосов
/ 28 мая 2010

У меня есть приложение в Django 1.2.Выбор языка (I18N и Locale = True)

Когда я выбираю английский язык.на сайте админ работает ок.Но когда я переключаюсь на любой другой язык, это то, что происходит с вводом даты (пример на испанском):

Правильно, ввод принимает испанский формат %d/%m/%Y (Даже при выборе из календаря дата вставляется, как и ожидалось),Но когда я сохраняю форму и загружаю ее снова, дата отображается на английском языке: %Y-%m-%d

Реальная проблема заключается в том, что когда я загружаю форму, чтобы изменить любое другое текстовое поле и пытаюсь сохранить его, яя получаю сообщение об ошибке при вводе действительной даты, поэтому мне приходится заново вводить все даты или менять язык на сайте, чтобы использовать администратора.

Я не указал ничего для DATE_INPUT_FORMATS в настройках, и я не указалпереопределенные формы или модели.

Конечно, я что-то упускаю, но не могу найти это.Кто-нибудь может дать мне подсказку?

1 Ответ

2 голосов
/ 28 мая 2010

Добавление этого в ваши настройки должно решить ту часть, которую вы называете «настоящей проблемой»:

DATE_INPUT_FORMATS = (   
    '%d/%m/%Y', '%d/%m/%y',     # '25/10/2006', '25/10/06'
    '%Y-%m-%d', '%y-%m-%d',     # '2006-10-25', '06-10-25'
)

DATETIME_INPUT_FORMATS = (
    '%d/%m/%Y %H:%M:%S',    # '25/10/2006 14:30:59'
    '%d/%m/%Y %H:%M',       # '25/10/2006 14:30'
    '%d/%m/%y %H:%M:%S',    # '25/10/06 14:30:59'
    '%d/%m/%y %H:%M',       # '25/10/06 14:30'
    '%Y-%m-%d %H:%M:%S',    # '2006-10-25 14:30:59'
    '%Y-%m-%d %H:%M',       # '2006-10-25 14:30'
    '%Y-%m-%d',             # '2006-10-25'
)

Но это проблема с Джанго. Я открыл тикет о проблеме , но вы должны прокомментировать, потому что ваш пример показывает, что это еще более серьезная проблема, чем я думал (потому что, как выяснилось, не вся локализация принимает и "универсальную", и " локализованные "форматы ввода даты).

Обновление: Я забыл добавить, что вы можете передавать localize=True в виджеты даты, и они должны всегда отображать даты в локализованном формате. Вот несколько примеров того, как это сделать в отчете об ошибке .

Я только что отправил сообщение о проблеме в список рассылки django-developers.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...