我希望使用模型中的属性来改进我在django中的视图。 注释代码工作正常,但当我在模型中添加属性时,模板中有空格
views.py:
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)
终端中的获取打印对象:
如果有人可以帮助理解我做错了什么以及我如何能够改善它,那么我将感激不尽:)
答案 0 :(得分:0)
您无法通过课程访问该媒体资源。注释代码有效,因为您使用的是实例:
a = Reservation.objects.get(id=event.id)
d = dict()
# ...
d['reservation_date'] = a.reservation_date # this works!