python - django:为什么我收到此错误:AttributeError:'method_descriptor'对象没有属性'今天'?

leo*_*ora 21 python django

我有以下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()
Run Code Online (Sandbox Code Playgroud)

在python shell中,我正在尝试运行:

p = Poll.objects.get(pk=1)
p.was_published_today()
Run Code Online (Sandbox Code Playgroud)

第一行工作正常但第二行给了我这个错误:

AttributeError:'method_descriptor'对象没有属性'今天'

Ada*_*erg 41

您可能需要"import datetime",而不是"from datetime import datetime".

"date"是datetime模块上的一个类,但它也是"datetime.datetime"类的一个方法.

  • 或`从日期时间导入日期时间,日期` (6认同)

小智 19

最佳答案是正确的,但如果您不想导入所有日期时间,则可以编写

from datetime import date
Run Code Online (Sandbox Code Playgroud)

然后更换

datetime.date.today()
Run Code Online (Sandbox Code Playgroud)

date.today()
Run Code Online (Sandbox Code Playgroud)


小智 5

你需要这样做(ipython 输出)

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

所以需要

def was_published_today(自我):
        返回 self.pub_date.date() == datetime.today().date()