如何在一个模板中包含2个以上的模型?

时间:2017-05-17 03:12:15

标签: python django templates view model

我自己学习Django的学生。 我将简单介绍一下我的项目。

  1. 获得棒球运动员'记录
  2. 在我的网站上显示
  3. 我的项目完成在距离之内。但我有一个问题。 这是我的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个模型(Profile,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

    &#13;
    &#13;
    <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>
    &#13;
    &#13;
    &#13;

    帮帮我..我该怎么办?

    我使用的是django版本1.10.5,python版本3.5.2

1 个答案:

答案 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}

当然,这些可以是您想要的任何变量名称。我按照自定义

进行多元化的季节