2011-02-05 19 views
15

Tengo el siguiente código Python:python - djangjo: ¿por qué recibo este error: AttributeError: el objeto 'method_descriptor' no tiene atributo 'today'?

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

En una cáscara de pitón, estoy tratando de ejecutar:

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

La primera línea funciona bien, pero la segunda línea me da este error:

AttributeError: 'method_descriptor' objeto no tiene atributo 'hoy'

Respuesta

29

Usted probablemente desee "importar fecha y hora", no "desde fecha y hora de fecha de importación".

"fecha" es una clase en el módulo de fecha y hora, pero también es un método en la clase "datetime.datetime".

1

lo que necesita hacer como éste (ipython de salida)

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

modo que habrá que

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

La respuesta más común es correcta, pero si usted no desea importar todos de fecha y hora puede escribir

from datetime import date 

y luego vuelva a colocar

datetime.date.today() 

con

date.today() 
+0

En mi caso, esta solución me ayudó. Gracias –

Cuestiones relacionadas