2017-03-19 41 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体育和联赛拉队? –