Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

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

Writer Andrew Henderson

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'

3 Answers

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.

1

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

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy