У меня есть метод модели Blog
, который создает уникальный серийный номер на основе submission_date
, submission_time
и id
экземпляра блога. Модель блога:
class Blog(models.Model):
title = models.CharField(max_length = 50, blank=False)
body = models.TextField()
slug = models.SlugField(max_length=50, blank=True)
serial_no = models.CharField(max_length=15, blank=True)
submit_date = models.DateField(auto_now=True, auto_now_add=False)
submit_time = models.TimeField(auto_now=True, auto_now_add=False)
...
В этом методе я беру поля даты и времени и преобразовываю их в строки через strftime()
, затем объединяю их. Это метод:
def get_serial_no(self):
s_date = self.submit_date
s_time = self.submit_time
str_date = s_date.strftime('%Y%m%d')
str_time = s_time.strftime('%H%m')
serial = self.id + str_date + str_time
return serial
Я переопределяю метод save()
для заполнения полей slug и serial_no. Ошибка возникает только при сохранении статьи. Он указывает на эту строку: str_date = s_date.strftime('%Y%m%d')
; с ошибкой: 'NoneType' object has no attribute 'strftime'
.
Насколько я понимаю, я правильно ссылаюсь на тип Date. Поэтому он должен вызывать свою strftime()
функцию.
Что я делаю не так?