python - django: почему я получаю эту ошибку: AttributeError: у объекта 'method_descriptor' нет атрибута 'today'? - PullRequest
19 голосов
/ 05 февраля 2011

У меня есть следующий код Python:

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

В оболочке Python я пытаюсь запустить:

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

Первая строка работает нормально, но вторая строка дает мнеэта ошибка:

AttributeError: у объекта 'method_descriptor' нет атрибута 'today'

Ответы [ 3 ]

38 голосов
/ 05 февраля 2011

Возможно, вы хотите «импортировать datetime», а не «from datetime import datetime».

«date» - это класс в модуле datetime, но он также является методом в классе «datetime.datetime».

18 голосов
/ 27 июля 2016

Верхний ответ правильный, но если вы не хотите импортировать все время и дату, вы можете написать

from datetime import date

и затем заменить

datetime.date.today()

с

date.today()
3 голосов
/ 06 февраля 2011

Вам нужно сделать вот так (вывод ipython)

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

Так что должно быть

def was_published_today(self):
        return self.pub_date.date() == datetime.today().date()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...