2013-08-01 183 views
0

我已经使用外键定义了不同应用程序的两个模型之间的关系,并且使用外键实例将数据准确地插入到了Db中,但是我想使用Django ORM获取该数据,但是我没有得到它,我GOOGLE了这个问题,也检查了堆栈溢出的问题,但我的问题仍然没有解决。外键关系问题

#models.py 

class teamInfo(models.Model):  
    ownerID = models.IntegerField() 
    teamName = models.CharField(max_length=50) 

    def __unicode__(self): 
     return unicode(self.id) 

class gameWorld(models.Model): 
    team = models.ForeignKey(teamInfo) 
    w = models.IntegerField(null=True) 
    l = models.IntegerField(null=True) 

    def __unicode__(self): 
     return unicode(self.id) 

我在我的意见中尝试了一些东西,但没有为我工作。下面是我在我的观点尝试最新的东西:

def teamStandings(request,template=None,context=None): 

    getAllTeamStat = gameWorld.objects.all() 

    for i in getAllTeamStat.teaminfo_set.select_related() : 
     raise Exception(i.teaminfo.teamName) 

我只是想一个Django ORM查询从两个模型获取数据,所以我可以显示在模板

回答

-3

编辑团队名称:这应该工作:

def teamStandings(request,template=None,context=None): 
     getAllTeamStat=gameWorld.objects.all() 
     for team in getAllTeamStat: 
      for teaminfo in team.teaminfo_set.all(): 
       print teaminfo.teamName 
+0

我收到此错误无论我使用“查询集”对象有没有属性“teaminfo_set”或“teamInfo_set” – Inforian

+1

这不会起作用,因为'gameWorld.objects.all()'将返回一个QuerySet并在调用'teaminfo_set'时引发错误。 –

+0

这里没有有效的“反向”关系。只有从teamInfo Model开始时,才可以使用反向。在这里,您可以通过QuerySet – user710907

0

here和尝试:

class TeamStandingsView(ListView): 
    model = gameWorld 
    template = # Some template path here! 
    context_object_name = "games" 

模板:

{% for game in games %} 
    {{ game.team.teamName }} 
{% endfor %}