【发布时间】:2017-08-05 11:53:39
【问题描述】:
我想使用模型中的属性改善我在 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)
在终端中获取打印对象:
如果有人可以帮助理解我做错了什么以及如何改进它以更好地分叉,我将不胜感激:)
【问题讨论】:
-
有问题,嗯?听起来很可怕。
-
不错的技巧,因为标题上不允许使用“问题”一词
-
您似乎没有打印实例属性,而是打印第一类。
标签: python django properties