2016-07-24 50 views
1

沒有錯誤我在Django定義以下模型:屬性沒有返回,並與日期時間

class MasterBudget(models.Model): 
    name = models.CharField(max_length=140) 
    expiry_date = models.DateField() 

    @property 
    def days_to_expiry(self): 
     todays_date = datetime.datetime.now() 
     datetime.timedelta(7) 
     days_until = (self.expiry_date - todays_date).days 
     return days_until 

隨着房地產返回天,直到期滿。

在我看來,我沒有得到任何價值未來通過時,我引用:

{{budget.days_to_expiry}} 

而且出了問題在控制檯上沒有錯誤。

我知道我的命名是正確的,因爲如果我做了以下內容:

@property 
def days_to_expiry(self): 
    return 1 
    todays_date = datetime.datetime.now() 
    datetime.timedelta(7) 
    days_until = (self.expiry_date - todays_date).days 

我看到了「1」的視圖。

任何想法是什麼造成這種情況?

+0

請注意,在這兩個片段中調用'datetime.timedelta(7)'*完全沒有任何影響*。 –

+0

感謝您的提升。我認爲它允許將兩者作爲整數進行比較(沒有時間的日子)。刪除它,但仍然沒有運氣:( – NickP

回答

1

既然你只使用一個DateField()

一個日期,Python中由datetime.date實例

也許嘗試做這樣的事情:

class MasterBudget(models.Model): 
    name = models.CharField(max_length=140) 
    expiry_date = models.DateField() 

    @property 
    def days_to_expiry(self): 
     todays_date = datetime.date.today() 
     return (self.expiry_date - todays_date).days 

它將返回expiry_date和今天之間的天數。

那是你希望完成的嗎?

+0

正是我試圖完成!謝謝,作品像一個魅力 – NickP

+0

@NickP很高興它幫助你!祝你好運! – jape