2011-02-05 145 views
15

我有以下Python代码:python - djangjo:为什么我得到这个错误:AttributeError:'method_descriptor'对象没有'今天'属性?

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'object has no attribute'today'

回答

29

You可能想要“导入日期时间”,而不是“从datetime导入日期时间”。

“date”是日期时间模块上的一个类,但它也是“datetime.datetime”类中的一个方法。

1

你需要做的是这样一个(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() 
7

顶端回答是正确的,但如果你不想导入所有的日期时间你可以写

from datetime import date 

,然后更换

datetime.date.today() 

date.today() 
+0

我的方案,该解决方案帮助了我。谢谢 – 2018-01-30 12:53:23

相关问题