Я беру в DateTimeField из API с форматом «2016-08-09T02: 16: 15Z». Я использую следующий код, чтобы разобрать его и превратить в то, что, как я думал, было полем даты, но я получаю сообщение об ошибке из одного из моих методов класса, чтобы сравнить время. Пожалуйста, смотрите код парсинга ниже:ISO 8601 Поле на Python Поле DateTime
time= dateutil.parser.parse(x['MatchTime']) #MatchTime is the ISO 8601 field
времени, кажется, тянет правильно, но когда я добавляю его в мою модель игры, вставленной ниже, моего is_live метод дает мне ошибку
игры модель:
class Game(models.Model):
time = models.DateTimeField(null=True, blank=True)
livePick = models.BooleanField(default=True)
def is_live(self):
now = timezone.now()
now.astimezone(timezone.utc).replace(tzinfo=None)
if now < self.time:
return True
else:
return False
Это ошибка я получаю, когда я бегу сценарий, чтобы добавить в игру со временем
line 34, in is_live
if now < self.time:
TypeError: unorderable types: datetime.datetime() < NoneType()
Update: Время добавляется в модель игры со следующим
g = Game.objects.create(team1=team1, team2=team2)
g.time = time
g.save()
Любая помощь очень ценится. Спасибо!
Я пытаюсь убедиться, что поле не является пустым с этим API вызова: время = dateutil.parser.parse (х ['MatchTime']) - MatchTime - это поле из API с данными даты ISO 8601. Я знаю, что вызов преобразует дату ISO 8601 в отформатированную дату, но питон не читает ее как поле даты. –
Как результат записи этой функции в переменную экземпляра модели? «время» определенно сохраняется в «self.time»? – solarissmoke
Добавлен код выше, чтобы показать, как притяжение API сохраняется в моей игровой модели. Пожалуйста, дайте мне знать, если вы хотите увидеть что-нибудь еще –