Vraag python - django: waarom krijg ik deze foutmelding: AttributeError: 'method_descriptor' object heeft 'vandaag' geen attribuut?


Ik heb de volgende 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 een python-shell probeer ik het volgende uit te voeren:

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

De eerste regel werkt prima, maar de tweede regel geeft me de volgende fout:

AttributeError: object 'method_descriptor' heeft geen kenmerk 'vandaag'


18
2018-02-05 20:52


oorsprong


antwoorden:


Waarschijnlijk wilt u "import datetime", niet "from datetime import datetime".

"datum" is een klasse in de datetime-module, maar het is ook een methode in de klasse "datetime.datetime".


32
2018-02-05 20:56



Het beste antwoord is correct, maar als u niet alle datetime wilt importeren, kunt u schrijven

from datetime import date

en dan vervangen

datetime.date.today()

met

date.today()

9
2017-07-27 20:28



Je moet doen zoals deze (ipython output)

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

Zo moet het zijn

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

1
2018-02-05 21:18