2 回答
TA贡献1852条经验 获得超1个赞
您可以在视图中做任何您喜欢的事情,并在上下文中传递任意数量的模型。
但在您的情况下,您实际上并不需要更改视图,但您应该更改模型。看起来 BattingStats 应该通过该playerid字段与 PlayerLkup 建立关系。您应该将其设为 ForeignKey (并调用它player) - 请注意,您实际上根本不需要更改基础表,这可能很重要,因为这似乎是一个遗留数据库。
class BattingStats(models.Model):
player = models.ForeignKey('PlayerLkup', db_column='playerID')
现在在您的模板中,您可以执行以下操作:
{{ playerdata.namefirst }}
{% for stat in playerdata.battingstats_set.all %}
{{ stat.year }}
{{ stat.g }}
...
{% endfor %}
(另外,请为您的字段提供更好的名称。它们不需要与 db 列相同,这就是该db_column属性的用途。没有理由使用单字符字段名称,例如g.)
TA贡献1804条经验 获得超7个赞
万一您不想更改模型(我愿意),您可以:
def player_info(request, playerid):
playerdata = PlayerLkup.objects.get(playerid=playerid)
battingdata = BattingStats.objects.get(playerid=playerid)
data = {
'playerdata': playerdata,
'battingdata': battingdata
}
return render(request, 'careerstats/playerpage.html', data)
在您的模板,你将两者playerdata并battingdata可以作为模板变量。
添加回答
举报