#django
Вопрос:
У меня есть Модель с DateField
. В администраторе Django когда я пытаюсь ввести дату в администраторе Django в формате %d-%m-%Y
, он выдает ошибку как Enter a valid date.
. Поскольку шаблон по умолчанию %Y-%m-%d
Я попытался сделать следующее, но не смог найти удовлетворительное решение по документам:
- Измените тип формата с помощью strftime в модели.
- Добавьте
DATE_INPUT_FORMATS
в настройки. - Измените код языка на «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 на данный момент?