【发布时间】:2015-04-25 08:31:41
【问题描述】:
您好,stackoverflow 团队,
我有以下两个 django 表:
class StraightredFixture(models.Model):
fixtureid = models.IntegerField(primary_key=True)
soccerseason = models.IntegerField(db_column='soccerSeason') # Field name made lowercase.
hometeamid = models.IntegerField()
awayteamid = models.IntegerField()
fixturedate = models.DateTimeField()
fixturestatus = models.CharField(max_length=24)
fixturematchday = models.IntegerField()
hometeamscore = models.IntegerField()
awayteamscore = models.IntegerField()
class Meta:
managed = False
db_table = 'straightred_fixture'
class StraightredTeam(models.Model):
teamid = models.IntegerField(primary_key=True)
teamname = models.CharField(max_length=36)
teamcode = models.CharField(max_length=5)
teamshortname = models.CharField(max_length=24)
class Meta:
managed = False
db_table = 'straightred_team'
在 views.py 中,我知道我可以输入以下内容并且效果很好:
def test(request):
fixture = StraightredFixture.objects.get(fixtureid=136697)
return render(request,'straightred/test.html',{'name':fixture.hometeamid})
正如我上面提到的,这一切都很好,但我希望返回可以在 StraightredTeam 模型中找到的 hometeamid 的团队名称。
环顾四周后,我被推向了“select_related”的方向,但我不清楚如何在现有表中实现它,以及它是否是此类查询的最有效方式。感觉不错。
请注意,此代码是使用“python manage.py inspectdb”创建的。
在此阶段的任何建议将不胜感激。非常感谢,艾伦。
【问题讨论】:
-
我很确定这段代码是使用
python manage.py inspectdb创建的,如果是,请在您的问题中说明。 -
您先生是个天才。我已按要求更新了问题。