2017-03-19 40 views
0

加入django的mysqllite表對我來說是新的。我可以在一張桌子上查詢得很好。並通過剛剛加入的mysql進行連接。我需要的是如何編寫到表一起即模型和我的項目第一qustion是找出所有在大西洋confrence隊加入兩個表django新手問答

我 有鑑於此下面的例子

"atlanticsoccer": League.objects.filter(name__contains="atlantic") 

this in html 
    <h5>Question 1</h5> 
       {% for whatever in atlanticsoccer %} 
       <li>{{whatever.name}}</li> 
       <li></li> 
       {% endfor %} 
       </ol> 

which gives me all my Atlantic conference leauges. But i can't seem to find an example of how to join the teams by id . I have linked below the models view If i can get an example of how to do the first I can figure out the html. Thanks in advance for helping a new coder. 

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 

from django.shortcuts import render, redirect 
from .models import League, Team, Player 

from . import team_maker 

def index(request): 
    context = { 
     "leagues": League.objects.all(), 
     "teams": Team.objects.all(), 
     "players": Player.objects.all(), 

     "atlanticsoccer": League.objects.filter(name__contains="atlantic") 


    } 
    return render(request, "leagues/index.html", context) 

def make_data(request): 
    team_maker.gen_leagues(10) 
    team_maker.gen_teams(50) 
    team_maker.gen_players(200) 

    return redirect("index") 

index.html 

    <h5>Question 1</h5> 
     {% for whatever in atlanticsoccer %} 
     <li>{{whatever.name}}</li> 
     <li></li> 
     {% endfor %} 
     </ol> 

回答

1

首先獲得所有teams有一個以「大西洋」的名稱:

atlanticsoccer = Team.objects.filter(league__name__contains='atlantic') 

然後通過它們無論你想遍歷在你的模板和打印:

<ul> 
    {% for team in atlanticsoccer %} 
     <li>{{team.location}}</li> 
     <li>{{team.team_name}}</li> 
     <li>{{team.league.name}}</li> 
     <li>{{team.league.sport}}</li> 
    {% endfor %} 
</ul> 
+0

Ty是我正在尋找的例子,現在我可以完成剩下的工作。 –

+0

去我的朋友的路。快樂的編碼! –

+0

如果你仍然在那裏是的,這拉我所需要的所有數據是否有一個技巧,只是從一個certian體育和聯賽拉隊? –