【发布时间】:2012-01-24 19:12:37
【问题描述】:
我向question 询问了关于如何查找受伤最多的前 5 名球员的注释,但现在我在显示正确信息时遇到了问题,我认为这应该是自己的问题。
这是我目前的看法:
def home(request):
context={}
most_recent = PlayerInjury.objects.all().order_by('-timestamp')[:5]
news = News.objects.all()
most_injured = PlayerInjury.objects.annotate(injury_count=Count('id')).order_by('-injury_count')[:5]
print most_injured
context['most_injured'] = most_injured
context['most_recent'] = most_recent
context['news'] = news
return render_to_response('dash/home.html', RequestContext(request, context))
models.py
class PlayerInjury(models.Model):
player = models.ForeignKey(Player)
injury_type = models.ForeignKey(Injury)
injury_date = models.DateField(verbose_name='Injured On', null=True, blank=True)
description = models.CharField(verbose_name='Description', max_length=180, null=True, blank=True)
status = models.ForeignKey(Status)
projected_return = models.DateField(verbose_name='Projected Return Date', null=True, blank=True)
hide = models.BooleanField(default=False)
returned = models.BooleanField(default=False)
timestamp = models.DateTimeField(auto_now_add=True)
class Player(models.Model):
first_name = models.CharField(verbose_name='First Name', max_length=30, null=True, blank=True)
last_name = models.CharField(verbose_name='Last Name', max_length=30, null=True, blank=True)
team = models.ForeignKey(Team, related_name='Team played for')
pob = models.CharField(verbose_name='Place of Birth', max_length=100, null=True, blank=True)
dob = models.DateField()
age = models.IntegerField(null=True, blank=True)
height = models.CharField(verbose_name='Height', max_length=10, null=True, blank=True)
weight = models.CharField(verbose_name='Weight', max_length=10, null=True, blank=True)
drafted_by = models.ForeignKey(Team, related_name='drafted by')
但是,当我打印出 most_injured 时,我得到:
- 玩家 A
- 玩家 B
- 玩家 A
真的,我认为它应该显示为:
- 玩家 A
- 玩家 B
由于玩家 A 比玩家 B 受到的伤害更大
有什么建议吗?
我认为它应该是这样工作的。
- 球员 A(2 次受伤)
- 球员 B(1 次受伤)
- 等等
【问题讨论】:
-
请发布您的模型。
-
Player的模型是什么样的?
标签: python django django-templates django-views