2017-01-25 27 views
0

我的模型的屬性返回true或false,如果開始日期是當前日期。如果instance.started等於True,我想將is_started字段更新爲True。何時/何處使用django模型的屬性標籤

class Advert(models.Model): 
    location = models.CharField(max_length=100) 
    is_started = models.BooleanField(default=False) 
    start_date = models.DateField() 

    @property 
    def started(self): 
     today = str(datetime.date.today()) 
     start_date = str(self.start_date) 

     if today == start_date: 
      return True 
     return False 

我現在的問題是在哪裏檢查這種情況。我不知道是否檢查這個條件,並更新前端檢查視圖中的is_started字段,併發送一個API請求來更新,如果條件ID爲true。什麼是最好的方式去做這件事?

回答

0

根據您的字段名稱,您的邏輯是不正確的,如果您在調用該屬性的同一天檢查該值,那麼is_started將永遠爲真,因此它沒有任何意義。

如果你談論的查詢,你不需要它,你只需要檢查,如果當前的日期是在起始日期

.filter(start_date__gte=datetime.now()) 

更大。如果你在一個視圖說起或方法,那麼你的財產就像(後來固定的)就足夠了。

因此,模型字段不是必需的。