Django: у объекта 'NoneType' нет ошибки атрибута 'strftime' при назначении DateField переменной в методе класса модели - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть метод модели 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() функцию.

Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...