python - django: why am I getting this error: AttributeError: 'method_descriptor' object has no attribute 'today'?

匿名 (未验证) 提交于 2019-12-03 02:56:01

问题:

I have the following python code:

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() 

In a python shell, I am trying to run:

p = Poll.objects.get(pk=1) p.was_published_today() 

The first line works fine but the second line gives me this error:

AttributeError: 'method_descriptor' object has no attribute 'today'

回答1:

You probably want "import datetime", not "from datetime import datetime".

"date" is a class on the datetime module, but it is also a method on the "datetime.datetime" class.



回答2:

The top answer is correct, but if you don't want to import all of datetime you can write

from datetime import date 

and then replace

datetime.date.today() 

with

date.today() 


回答3:

You need do like this one (ipython output)

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

So need to be

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!