Я испытываю странное поведение в моем файле views.py:
в моей модели пользователя у меня есть
date_something = models.DateTimeField(blank=True, null=True)
Ниже приведен код, связанный с views.py
Вывод
match = User.objects.get(email='test@test.com')
time_now = datetime.datetime.now(tz=pytz.timezone("UTC"))
match.date_something = time_now,
match.date_something2 = time_now,
# just want to check whats is stored from above line
check = match.date_something
locals()['check']
: в консоли сервера запуска
(datetime.datetime(2019, 10, 10, 8, 20, 10, 787399, tzinfo=<UTC>),)
Итак, мы видим, что check
является tuple
.
Из-за этого, когда я пытаюсь сохранить модель
match.save()
, он говорит TypeError: expected string or bytes-like object
Я проверил этот код в данго Shell_plus
и он даетправильные результаты.
In [2]: import datetime
...: import pytz
...:
...: match = User.objects.get(email='test@test.com')
...: match.date_something = datetime.datetime.now(tz=pytz.timezone("UTC"))
...: check = match.date_something
...:
...: locals()['check']
Out[2]: datetime.datetime(2019, 10, 10, 8, 25, 59, 533597, tzinfo=<UTC>)
НАЙТИ ПРОБЛЕМУ
Я добавлял запятую в конце этой строки в views.py, поэтому она сохранялась как кортеж.
match.date_something = time_now,