django datetime.datetime 错误

2 投票
2 回答
5449 浏览
提问于 2025-04-16 08:39

在跟着这个教程 这里 学习的时候,我到了要运行 poll.was_published_today 的地方,结果出现了这个错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/myDir/mySite/polls/models.py", line 11, in was_published_today
    return (self.pub_date() == datetime.date.today())
TypeError: 'datetime.datetime' object is not callable

这是我投票类的代码:

from django.db import models
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() == datetime.date.today())

我尝试了几种不同的方法,但每次提到“datetime”时,都会出问题。

这段代码:

import datetime
datetime.date.today()

在解释器中运行时一切正常,正如我预期的那样,但在我的文件里却不行。有什么建议吗?

2 个回答

2

我解决了这个问题。出于某种原因,它把 import datetime 当成了 from datetime import * 来处理(有人知道为什么吗?)所以我把 datetime

return (self.pub_date.date() == datetime.date.today())

中去掉了,这样就修好了。我还决定先导入 datetime,虽然我不知道这样做是否有帮助。

对我来说,能正常工作的文件是:

import datetime
from django.db import models

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() == date.today()
5

打错了。应该是

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

撰写回答