【发布时间】:2021-11-19 18:50:37
【问题描述】:
我想总结一下登录用户获得奖励的总票数。一个奖项有多个类别和多个提名,我想做的是显示与该奖项相关的所有提名的总票数
model.py
class Award(models.Model):
admin = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
image = models.ImageField(upload_to='award_images')
slug = models.SlugField(max_length=150)
about_the_award = models.TextField(blank=True, null=True)
price = models.CharField(max_length=20, choices=PRICE, default='0.5')
amount = models.DecimalField(default=0.0, max_digits=19, decimal_places=2)
date = models.DateTimeField(auto_now_add=True)
class Category(models.Model):
award = models.ForeignKey(Award, on_delete=models.CASCADE)
category = models.CharField(max_length=100,)
slug = models.SlugField(max_length=150)
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.category
class Nomination(models.Model):
fullname = models.CharField(max_length=120)
mominee_ID = models.CharField(max_length=100)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
image = models.ImageField(upload_to='nominations_images')
slug = models.SlugField(max_length=150)
votes = models.IntegerField(default=0)
date = models.DateTimeField(auto_now_add=True)
View.py
@method_decorator([login_required], name='dispatch')
class DashboardView(TemplateView):
template_name = 'admin/Dashboard.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['user_awards'] = Award.objects.filter(Admin=self.request.user).order_by('-date')
context['number_of_votes'] = Award.objects.filter(Admin=self.request.user, self.catgory.nomination).annotate(Sum('amount'))
return context
【问题讨论】:
标签: python django django-models django-views django-templates