Ответ 1
Вероятно, вы хотите "import datetime", а не "from datetime import datetime".
"date" - это класс в модуле datetime, но это также метод класса "datetime.datetime".
У меня есть следующий код 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'
Вероятно, вы хотите "import datetime", а не "from datetime import datetime".
"date" - это класс в модуле datetime, но это также метод класса "datetime.datetime".
Верхний ответ правильный, но если вы не хотите импортировать все datetime, вы можете написать
from datetime import date
а затем замените
datetime.date.today()
с
date.today()
Вам нужно сделать это (выход на 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()