Формат даты для администратора Django

#django

Вопрос:

У меня есть Модель с DateField . В администраторе Django когда я пытаюсь ввести дату в администраторе Django в формате %d-%m-%Y , он выдает ошибку как Enter a valid date. . Поскольку шаблон по умолчанию %Y-%m-%d

Я попытался сделать следующее, но не смог найти удовлетворительное решение по документам:

  1. Измените тип формата с помощью strftime в модели.
  2. Добавьте DATE_INPUT_FORMATS в настройки.
  3. Измените код языка на «en-IN»

Есть ли какой-либо способ сохранить дату в %d-%m-%Y формате.

Комментарии:

1. DATE_INPUT_FORMATS не работает? Вы установили USE_L10N = True в своих настройках?

Ответ №1:

 class YourModel(models.Model):
    date = models.DateField('Date', null=True, blank=True)
 

Вставьте это в Settings.py

 DATE_FORMAT = ( ( 'd-m-Y' ))
DATE_INPUT_FORMATS = ( ('%d-%m-%Y'),)
DATETIME_FORMAT = (( 'd-m-Y H:i' ))
DATETIME_INPUT_FORMATS = (('%d-%m-%Y %H:%i'),)

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'Asia/Kolkata'

USE_I18N = True

USE_L10N = False

USE_TZ = False
 

Ответ №2:

Вам нужно зайти в свою модель и добавить пару строк:

 import datetime
class yourModel(models.model):
    date = field etc
    def __str__(self):
        return date.strftime('%d-%m-%Y')
 

Комментарии:

1. Я попытался добавить str , но он выдает as descriptor 'strftime' for 'datetime.date' objects doesn't apply to a 'str' object . Дата может быть преобразована в str на данный момент?