2017-03-19 2 views
0

Während ich diesen Beitrag Django views.py Version of SQL Join with Multi Table Query hilfreich finde. Es scheint mir nicht dabei zu helfen, Tabellen zu verbinden. Ich hatte früher Hilfe bei einer Frage und ich dachte, ich hätte es verstanden. Ich versuche die folgenden (aktuellen) Spieler auf den Boston Penguins zu spielen.Lernen multi Tabellen Beitritt Informationen django

Code I zur Zeit haben versucht, es zu ziehen ist

Player.objects.filter(team__all_teams__contains='boston', player__curr_team__contains="Penguins") 

, die von ohnehin Argumentation mich in den Player.objects meines Modells setzt und sollte mit Boston aus meinem Team alle Teams Filterung werden, die auf es und dann sollten alle aktuellen Spieler für dieses Team ziehen.

Noch besser als nur eine Antwort zu geben ist ein Link zu einem Video oder Dokument, das das besser erklärt, damit ich es besser studieren kann, um die Anruffunktionen zu lernen.

Models.py 

from django.db import models 

class League(models.Model): 
    name = models.CharField(max_length=50) 
    sport = models.CharField(max_length=15) 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

class Team(models.Model): 
    location = models.CharField(max_length=50) 
    team_name = models.CharField(max_length=50) 
    league = models.ForeignKey(League, related_name="teams") 

class Player(models.Model): 
    first_name = models.CharField(max_length=15) 
    last_name = models.CharField(max_length=15) 
    curr_team = models.ForeignKey(Team, related_name="curr_players") 
    all_teams = models.ManyToManyField(Team, related_name="all_players") 

views.py only line i need help with rest works fine if i take out that line 

"bostonp" : Player.objects.filter(team__all_teams__contains='boston', player__curr_team__contains="Penguins") , 


index.html only section that doesnt work take it out and it works 

<h5>Question 2</h5> 
     {% for whatever in bostonp %} 
     <li>{{whatever.team_name}}</li> 
     {% endfor %} 
     </ol> 

Antwort

1

Versuchen Sie dies (diese player Instanzen holen wird):

bostonp = Player.objects.filter(curr_team__team_name__contains='Penguins') 

Und dann in der Vorlage:

{% for player in bostonp %} 
    <li>{{ player.first_name }} {{ player.last_name }}</li> 
{% endfor %} 
+0

{% für das, was in bostonp%} \t \t

  • {{ whatever.curr_team}}
  • \t \t {% endfor%} das sollte es in der html ziehen sollte es nicht? –

    +0

    kein gleiches Problem, das nicht die Info für den HTML zieht ich denke, dass Ihre Codes für Ansichten es richtig aber HTML nicht zieht die Info –