データベースから html テンプレートへのクエリを表示する次のステップに行き詰まっています。基本的な情報を入力することはできますが、外部キー クエリで行き詰まりました。
ここに私のコードのサンプルがあります:
これが私のモデルです:
class Player_Bios(models.Model):
my_id = models.SlugField(unique=True)
player_id = models.IntegerField(primary_key=True, max_length=50)
name = models.CharField(max_length=50)
last = models.CharField(max_length=50)
def __unicode__(self):
return self.player_id
class BatStat (models.Model):
player_id = models.ForeignKey('Player_Bios')
team_id = models.ForeignKey('Team')
bat_stat_id = models.CharField(max_length=50, unique=True)
sport_code = models.CharField(max_length=50, blank=True)
ab = models.IntegerField(max_length=50, null=True)
def __unicode__(self):
return self.bat_stat_id
私の見解:
def SpecificPLayer(request, playerslug):
player = Player_Bios.objects.get(player_id=playerslug) #this is the name, last and it is working fine
playerStat = BatStat.objects.filter(player_id=playerslug) #Here I'm calling the foreign key
print playerStat
context = {'player' : player, 'today' : date.today(), 'playerStat' : playerStat }
return render_to_response ('singleplayer.html', context, context_instance=RequestContext(request))
私の HTML テンプレート:
{% extends 'base.html' %}
{% block content %}
<div id="singleplayer">
<p>Name: {{ player.name|capfirst }}</p>
<p>Last Name: {{ player.last|capfirst }}</p>
</div>
{% endfor %}
{% endblock %}
ここで、playerStat を出力すると、player_id からすべての BatStat が取得されます。y の場合、次のようになります。
[<BatStat: 40539520011>, <BatStat: 40539520021>, <BatStat: 40539520031>]
次のようにして、シェルで必要な結果を取得します。
playerStatID=BatStat.objects.filter(player_id='the player id here')
print playerStatID
[<BatStat: 40539520011>, <BatStat: 40539520021>, <BatStat: 40539520031>]
for i in playerStatID:
playerStat= BatStat.objects.get(bat_stat_id=i)
print BatStat.ab
200
そうすることで、必要な情報を取得できます。どうすればそれを取得できますか。それは、テンプレートに配置することです。テンプレートでループを使用してクエリを取得することはできないため、ビューでループを実行する必要があると思いますが、どうすればよいでしょうか。ありがとう