我正在尝试显示模板中的数据。我遇到的问题是引用PlayerInfo
表playerid
的BattingStats
表中的外键。当我显示它时,该字段的数据正在显示,但它被括在括号中,前面是ReferencedTable object
.所以对我来说,它看起来像这样PlayerInfo object (smithjo05)
.为什么要这样做,我如何让它只显示playerid
?帮助得到重视。谢谢。
视图
def battingview(request):
playerinfo = PlayerInfo.objects.all()
playerstats = BattingStats.objects.filter(year=2018)
return render(request, 'playerstats/battingRegStnrd2018.html', {'playerinfo':playerinfo,'playerstats': playerstats})
模型
class BattingStats(models.Model):
id = models.IntegerField(db_column='ID', primary_key=True)
playerid = models.ForeignKey('PlayerInfo', models.DO_NOTHING, db_column='playerID', blank=True, null=True)
player = models.CharField(db_column='Player', max_length=255, blank=True, null=True)
hr = models.IntegerField(db_column='HR', blank=True, null=True)
rbi = models.IntegerField(db_column='RBI', blank=True, null=True)
ba = models.FloatField(db_column='BA', blank=True, null=True)
class PlayerInfo(models.Model):
playerid = models.CharField(db_column='playerID', primary_key=True, max_length=255)
namefirst = models.CharField(db_column='nameFirst', max_length=255, blank=True, null=True)
namelast = models.CharField(db_column='nameLast', max_length=255, blank=True, null=True)
height = models.IntegerField(blank=True, null=True)
debut = models.CharField(max_length=255, blank=True, null=True)
finalgame = models.CharField(db_column='finalGame', max_length=255, blank=True, null=True)
.HTML
{% for index in playerstats %}
<td>{{ index.playerid }}</td>
<td>{{ index.year}}</td>
<td>{{ index.age}}</td>
<td>{{ index.team}}</td>
<td>{{ index.league}}</td>
{% endfor %}
{% for index in playerstats %}
{{ index.playerid }}
{% endfor %}
浏览器
PlayerInfo object (smithjo05)
PlayerInfo object (cruzne02)
PlayerInfo object (jonesad01)
您只需要将__str__
方法添加到PlayerInfo
模型中:
class PlayerInfo(models.Model):
playerid = models.CharField(db_column='playerID', primary_key=True, max_length=255)
namefirst = models.CharField(db_column='nameFirst', max_length=255, blank=True, null=True)
namelast = models.CharField(db_column='nameLast', max_length=255, blank=True, null=True)
height = models.IntegerField(blank=True, null=True)
debut = models.CharField(max_length=255, blank=True, null=True)
finalgame = models.CharField(db_column='finalGame', max_length=255, blank=True, null=True)
def __str__(self):
return self.playerid
这允许在将实例转换为字符串时更改实例的默认表示形式,例如在模板中。