Django DateTimeField()

#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()