我有这么一段代码,把一个团队中所有受伤的球员加起来。你知道吗
teams = Team.objects.annotate(team_count=Count('Team played for')).order_by('city')
但是我有个问题。它目前正在增加所有的伤病,但我想只计算球员,目前受伤,或更具体地说。。。其中returned=False
以下是我的模型,以了解更多的上下文。你知道吗
团队型号.py你知道吗
class Team(models.Model):
city = models.CharField(verbose_name='City', max_length=30, null=True, blank=True)
team_name = models.CharField(verbose_name='Team Name', max_length=30, null=True, blank=True)
team_logo = models.ImageField(upload_to='images/', null=True, blank=True)
team_affiliation = models.ForeignKey('self', null=True, blank=True)
def __unicode__(self):
return u'%s %s' % (self.city, self.team_name)
编辑添加的播放器型号.py
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')
position = models.ForeignKey(Position, related_name="Position")
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', null=True, blank=True)
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
伤害型号.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)
source = models.URLField(max_length=200, null=True, blank=True)
source_label = models.CharField(null=True, blank=True, max_length=200)
def __unicode__(self):
return u'%s - %s' % (self.player, self.injury_type)
有没有一种方法可以过滤注释,使其只计算当前受伤的球员?你知道吗
只需在调用annotate之前过滤:
.filter(player__playerinjury__returned=False).annotate(...)
。你知道吗相关问题 更多 >
编程相关推荐