【发布时间】:2020-08-09 04:41:37
【问题描述】:
我在库存模板中列出了今天注册的事件,我想显示事件的总评分(今天注册)。
我通过将分数的总和设为函数从模板中调用它,但它不可见。有人知道吗?
views.py
class CalendarView(generic.ListView):
model = Event
template_name = 'cal/calendar.html'
def get_queryset(self, **kwargs):
return Event.objects.all().filter(start_time__date=date.today())
def filter_event_rating_sum(self):
filtered_event = Event.objects.all().filter(start_time__date=date.today())
sum_rating = 0
for each_event in filtered_event:
sum_rating += each_event.rating
return sum_rating
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
d = get_date(self.request.GET.get('month', None))
cal = Calendar(d.year, d.month)
# issue self.request.user
html_cal = cal.formatmonth(self.request.user, withyear=True)
context['calendar'] = mark_safe(html_cal)
context['prev_month'] = prev_month(d)
context['next_month'] = next_month(d)
return context
templates.html
<p class="today">Today</p>
{% for list in object_list %}
<div class="today_list_item">
<span>{{ list.title }}</span>
<span class="each_rating">{{ list.rating }}</span>
</div>
{% endfor %}
<p class="total">TOTAL</p>
{{ sum_rating }}
</div>
models.py
class Event(models.Model):
title = models.CharField(max_length=200)
start_time = models.DateTimeField(default = timezone.now, blank = True)
# default = timezone.now,
profile=models.ForeignKey(Profile, related_name='event',on_delete=models.CASCADE)
rating = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(5)], blank=True, default='enter your value')
def __str__(self):
return '{}/ {}/ {}'.format(self.id, self.title, self.start_time, self.rating)
【问题讨论】:
-
您需要修复代码中的缩进,或者可能就像您的问题一样?