我有以下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 shell中,我正在尝试运行:
p = Poll.objects.get(pk=1)
p.was_published_today()
第一行工作正常,但第二行给出了这个错误:
AttributeError:'method_descriptor'对象没有'今天'属性
答案 0 :(得分:36)
您可能需要“导入日期时间”,而不是“从日期时间导入日期时间”。
“date”是datetime模块上的一个类,但它也是“datetime.datetime”类的一个方法。
答案 1 :(得分:16)
最佳答案是正确的,但如果您不想导入所有日期时间,可以写
from datetime import date
然后替换
datetime.date.today()
与
date.today()
答案 2 :(得分: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()