-
В "settings.py":
Но в админке все-равно дата выводится в формате ISO: <год>-<месяц>-<день>.DATE_FORMAT = 'd.m.Y'
DATE_INPUT_FORMATS = ('%d.%m.%Y',)
USE_L10N = False
В режиме редактирования записи в админке при выборе даты через соответствующий виджет подставляется правильная дата в нужном формате <день>.<месяц>.<год>, т.е. получается изначально дата в одном формате (ISO), а при ее изменении в поле записывается дата в другом формате (FORMAT_DATE).
В форме на базе модели по дефолту тоже формат ISO'шный.
Можно конечно в классе формы написать:
Но писать это постоянно не хочется.someDateField = forms.DateField(widget=forms.DateInput(format=settings.FORMAT_DATE))
Так как же задать формат даты глобально, чтобы он использовался по дефолту везде - и в админке и в формах? -
http://docs.djangoproject.com/en/dev/ref/settings/#date-format - вот здесь написано, что через DATE_FORMAT задается "the default formatting to use for displaying date fields in any part of the system", но у меня почему-то не работает.
-
Кажись это глюк Джанги 1.2.1:
http://code.djangoproject.com/ticket/13702 -
тоже столкнулся, вводить надо как я хочю, в европейском стандарте, а вот вывод типа inital, instance в форме происходит по старому формату!!! ждем компитентный ответ от Ивана Сагалаева.
-
На этом глюк не исчерпывается.
При сохранении юзера админка ругается "Введите правильную дату" на поля "Дата регистрации" и "Последний вход", которые ошибочно заполняются в ISO-формате, а для сохранения требуется формат, заданный в соответствующих константах settings'а. -
Используйте
USE_L10N = Trueи указывайте в полях формlocalize=True. Для админки все проблемы решаются примерно таким кодом:class MyModelAdmin(admin.ModelAdmin): def __init__(self, *args, **kw): super(MyModelAdmin, self).__init__(*args,**kw) for key in self.formfield_overrides.iterkeys(): self.formfield_overrides[key].update({'localize':True})
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

