2017-05-17 52 views
1

我是自己學習Django的學生。 我會簡單介紹一下我的項目。如何在一個模板中包含兩個以上的模型?

  1. 獲取棒球選手的戰績
  2. 顯示它在我的網站

我的項目完全是海陵距離之內。但我有一個問題。 這是我view.py

from django.shortcuts import get_object_or_404, render 
from displayer.models import Profile, SeasonRecord 

def index(request): 
    profile_list = Profile.objects.all().order_by('-no')[:5] 
    context = {'profile_list': profile_list} 

    return render(request, 'displayer/index.html', context) 

def data(request, profile_id): 
    profile = get_object_or_404(Profile, pk=profile_id) 
    season = SeasonRecord.objects.all().order_by('-no')[:5] 
    context = {'profile': profile, 'season':season} 

    return render(request, 'displayer/data.html', context) 

我要包含2款(資料,SeasonRecord)在取景功能(數據)和我將包含在此視圖功能更多的車型。但它只包含Profile模型。

這是urls.py

from django.conf.urls import url 
from django.contrib import admin 
from displayer import views 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^displayer/$', views.index, name='index'), 
    url(r'^displayer/(?P<profile_id>\d+)/$', views.data, name='data'), 
] 

這是data.html

<h1>{{ profile.number }}</h1> 
 
<h1>{{ profile.name }}</h1> 
 

 
<table align="left" border="1"> 
 
<tr> 
 
    <td>position</td> 
 
    <td>debut</td> 
 
    <td>born</td> 
 
    <td>body</td> 
 
</tr> 
 
<tr> 
 
    <td>{{ profile.position }}</td> 
 
    <td>{{ profile.debut }}</td> 
 
    <td>{{ profile.born }}</td> 
 
    <td>{{ profile.body }}</td> 
 
</tr> 
 
</table> 
 

 
<br/><br/><br/><br/><br/> 
 

 
<table align="left" border="1"> 
 
    <tr> 
 
     <td>avg</td> 
 
     <td>rbi</td> 
 
    </tr> 
 
    <tr> 
 
     <td>{{ season.avg }}</td> 
 
     <td>{{ season.rbi }}</td> 
 
    </tr> 
 
</table>

幫助我..我該怎麼辦?

我使用Django版本1.10.5,Python版本3.5.2

+0

賽季會返回多個對象,因此您需要在模板中循環播放它。配置文件返回一個對象,因此您不需要循環它。我認爲那是你犯了錯誤的地方。 –

回答

0

您需要使用Django模板循環

<table align="left" border="1"> 
    <tr> 
     <td>avg</td> 
     <td>rbi</td> 
    </tr> 
    {% for season in seasons %} 
     <tr> 
     <td>{{ season.avg }}</td> 
     <td>{{ season.rbi }}</td> 
     </tr> 
    {% endfor %} 
</table> 

,這需要有

context = {'profile': profile, 'season':seasons} 

當然,這些可以是你想要的任何變量名稱。根據自定義情況,我是複數季節

+0

謝謝你我會試試 –

+0

我在你的幫助下完成了項目。謝謝:) –

+0

很高興有幫助。 – e4c5

相關問題