2013-08-01 382 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 %}