2011-02-05 43 views
15

Tôi đã mã python sau:python - djangjo: tại sao tôi nhận được lỗi này: AttributeError: đối tượng 'method_descriptor' không có thuộc tính '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() 

Trong một vỏ python, tôi đang cố gắng để chạy:

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

Dòng đầu tiên hoạt động tốt nhưng dòng thứ hai mang lại cho tôi lỗi này:

Thuộc tínhLỗi: đối tượng 'method_descriptor' không có thuộc tính 'today'

Trả lời

29

Bạn có thể muốn "nhập datetime", không phải "từ datetime import datetime".

"ngày" là một lớp trên mô-đun ngày giờ, nhưng nó cũng là một phương thức trên lớp "datetime.datetime".

1

Bạn cần làm như thế này (ipython đầu ra)

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

Vì vậy, cần phải

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

Câu trả lời đầu là đúng, nhưng nếu bạn không muốn nhập khẩu tất cả các datetime bạn có thể viết

from datetime import date 

và sau đó thay thế

datetime.date.today() 

với

date.today() 
+0

Trong kịch bản của tôi, giải pháp này giúp tôi. Cảm ơn –

Các vấn đề liên quan