2017-03-14 7 views
0

モデルのプロパティを使用して、djangoのビューを改善したいと思います。Djangoモデルのプロパティ

 cal_day = {} 
     cal_day['day'] = day 
     cal_day['day_event'] = False 
     cal_day['sports'] = [] 
     for event in event_list: 
      if day >= event.reservation_date.date() and day <= event.reservation_date.date(): 
       cal_day['day_event'] = True 
       hours_week.append(event.reservation_date.time()) 
       # a = Reservation.objects.get(id=event.id)      
       # d = dict() 
       # d['id'] = a.id 
       # d['sport'] = a.sport 
       # d['trainer'] = a.trainer 
       # d['reservation_date'] = a.reservation_date 
       # d['free_space'] = (a.sport.capacity - a.users.count()) 
       # d['duration'] = a.sport.duration 
       # d['time'] = a.reservation_date.time() 
       # cal_day['sports'].append(d) 
       print(Reservation.reservation_info) 
       cal_day['sports'].append(Reservation.reservation_info) 

models.pyの端末で

class Reservation(models.Model): 
    sport = models.ForeignKey('Sport') 
    trainer = models.ForeignKey('MyUser' ,related_name='Trainer') 
    users = models.ManyToManyField('MyUser', blank = True) 
    reservation_date = models.DateTimeField(null = True, blank = True) 


    @property 
    def reservation_info(self): 

     d = dict() 
     d['id'] = self.id 
     d['sport'] = self.sport 
     d['trainer'] = self.trainer 
     d['reservation_date'] = self.reservation_date 
     d['free_space'] = (self.sport.capacity - self.users.count()) 
     d['duration'] = self.sport.duration 
     d['time'] = self.reservation_date.time() 
     return d 

    def __str__(self): 
     return '{} , {}'.format(self.sport, self.reservation_date) 

が印刷を取得するオブジェクト:

views.pyを は、コードがうまく働いたコメントが、私はモデルにプロパティを追加するとき、私は、テンプレートに空白を得た

誰かが私が間違っていることを理解するのに役立ち、どのように私がそれを改善することができれば、私は感謝するでしょう:)

+0

騒々しい。 – jonrsharpe

+0

"problem"という単語がタイトルとして許可されていません。 – Fallen

+0

インスタンスプロパティは印刷されていますが、クラスは印刷されません。 – sphere

答えて

0

クラスでプロパティにアクセスすることはできません。あなたがインスタンスを使用していたのでコメントされたコードが機能しました:

a = Reservation.objects.get(id=event.id) 
d = dict() 
# ... 
d['reservation_date'] = a.reservation_date # this works!