1. wega

    23.07.2010

    0 ↑
    0 ↓
    В "settings.py":
    DATE_FORMAT = 'd.m.Y'
    DATE_INPUT_FORMATS = ('%d.%m.%Y',)
    USE_L10N = False
    Но в админке все-равно дата выводится в формате ISO: <год>-<месяц>-<день>.
    В режиме редактирования записи в админке при выборе даты через соответствующий виджет подставляется правильная дата в нужном формате <день>.<месяц>.<год>, т.е. получается изначально дата в одном формате (ISO), а при ее изменении в поле записывается дата в другом формате (FORMAT_DATE).

    В форме на базе модели по дефолту тоже формат ISO'шный.

    Можно конечно в классе формы написать:
    someDateField = forms.DateField(widget=forms.DateInput(format=settings.FORMAT_DATE))
    Но писать это постоянно не хочется.

    Так как же задать формат даты глобально, чтобы он использовался по дефолту везде - и в админке и в формах?
  2. wega

    23.07.2010

    0 ↑
    0 ↓
    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", но у меня почему-то не работает.
  3. wega

    23.07.2010

    0 ↑
    0 ↓
    Кажись это глюк Джанги 1.2.1:
    http://code.djangoproject.com/ticket/13702
  4. ivanff.myopenid.com

    23.07.2010

    0 ↑
    0 ↓
    тоже столкнулся, вводить надо как я хочю, в европейском стандарте, а вот вывод типа inital, instance в форме происходит по старому формату!!! ждем компитентный ответ от Ивана Сагалаева.
  5. wega

    23.07.2010

    0 ↑
    0 ↓
    На этом глюк не исчерпывается.
    При сохранении юзера админка ругается "Введите правильную дату" на поля "Дата регистрации" и "Последний вход", которые ошибочно заполняются в ISO-формате, а для сохранения требуется формат, заданный в соответствующих константах settings'а.
  6. Используйте 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})
    

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.