Python - djangjo: почему я получаю эту ошибку: AttributeError: объект 'method_descriptor' не имеет атрибута 'today'?

У меня есть следующий код python:

from django.db import models
from datetime import datetime

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self):
        return self.question
    def was_published_today(self):
        return self.pub_date.date() == datetime.date.today()

В оболочке python я пытаюсь запустить:

p = Poll.objects.get(pk=1)
p.was_published_today()

Первая строка работает отлично, но вторая строка дает мне эту ошибку:

AttributeError: объект 'method_descriptor' не имеет атрибута 'today'

Ответы

Ответ 1

Вероятно, вы хотите "import datetime", а не "from datetime import datetime".

"date" - это класс в модуле datetime, но это также метод класса "datetime.datetime".

Ответ 2

Верхний ответ правильный, но если вы не хотите импортировать все datetime, вы можете написать

from datetime import date

а затем замените

datetime.date.today()

с

date.today()

Ответ 3

Вам нужно сделать это (выход на ipython)

In [9]: datetime.today().date()
Out[9]: datetime.date(2011, 2, 5)

Так что нужно

def was_published_today(self):
        return self.pub_date.date() == datetime.today().date()