#django #django-models
#django #django-модели
Вопрос:
В Django: у меня есть дата и время, которые мне нужно ввести в мою модель базы данных, в которой есть столбец models.DateTimeField()
. Кажется, что независимо от того, что я делаю, я получаю ошибку ValidationError: введите допустимый формат даты / времени.
У меня есть строка, подобная этой:
myStr = "2011-10-01 15:26"
Я хочу сделать:
p = mytable(myDate = WHAT_GOES_HERE)
p.save()
Пожалуйста, не указывайте мне на дублирующий вопрос. Я осмотрелся, и они указывают на другие вопросы, которые снова указывают на вопросы, которые указывают на некоторый documentaton, который просто не дает мне того, что мне нужно. Спасибо!
Ответ №1:
>>> import datetime
>>> myStr = "2011-10-01 15:26"
>>> WHAT_GOES_HERE = datetime.datetime.strptime(myStr, "%Y-%m-%d %H:%M")
>>> WHAT_GOES_HERE
datetime.datetime(2011, 10, 1, 15, 26)
>>>
Ответ №2:
Ответ №3:
Из документации Django:
# inserting datetime.now()
import django.utils.timezone as tz
mytable.objects.create(myDate=tz.localtime())
# inserting any date:
import pytz
import django.utils.timezone as tz
from datetime import datetime as dt
my_tz = pytz.timezone('Europe/Bucharest')
my_date = dt(2018, 8, 20, 0)
mytable.objects.create(myDate=tz.make_aware(my_date, my_tz))
Комментарии:
1. Вместо ValidationError: введите допустимый формат даты / времени , я получил RuntimeWarning: DateTimeField . В любом случае проблема была решена с помощью приведенного выше кода.
Ответ №4:
Вы можете просто сделать следующее
myStr = '2011/10/01 15:26'
И затем при создании вашего объекта просто используйте myStr в качестве значения атрибута:
p = mytable(myDate = myStr)
p.save()