Формат даты в моделях - PullRequest
       10

Формат даты в моделях

0 голосов
/ 10 февраля 2010

Здравствуйте, как мне изменить формат даты в моделях например, у меня есть date = models.DateField (blank = True, null = True)

по умолчанию это формат гггг-мм-дд как мне изменить его на формат дд-мм-гггг

Ответы [ 3 ]

2 голосов
/ 10 февраля 2010

Дата - это дата, которая не имеет «формата». Формат применяется, когда вы представляете дату в виде строки или когда вы хотите интерпретировать строку как дату.

1 голос
/ 10 февраля 2010

Вы можете поиграть с DATE_INPUT_FORMATS и аналогичными настройками для вашего проекта.

Вы определяете настройку в файле settings.py для своего проекта. Например:

DATE_INPUT_FORMATS = ('%d-%m-%Y', '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y',
                      '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y',
                      '%B %d, %Y', '%d %B %Y', '%d %B, %Y')
0 голосов
/ 10 февраля 2010

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

Если вы действительно этого хотите, вы можете установить DATE_FORMAT в вашем settings.py, например, так:

DATE_FORMAT='d-m-Y'

По умолчанию отображается следующее:

Feb 5, 2010 

Выглядит так:

05-02-2010

Теперь, конечно, есть и другие места, где это будет переопределено, например, приложение администратора и виджеты форм по умолчанию, так что это не похоже на полное решение всех ваших проблем. Просто привыкните к использованию datetime.datetime.strftime() вот так:

>>> # using one of my own apps as an example where 'created' is a DateTimeField
>>> r.created
datetime.datetime(2010, 1, 28, 10, 5, 19, 38963)
>>> print r.created # default output (this is a Python default)
2010-01-28 10:05:19.038963
>>> print datetime.datetime.strftime(r.created, "%m-%d-%Y") # forcing it to m-d-Y format
01-28-2010
...