尝试对模型查询集进行迭代时,Python Django'TypeError:object is noterable'

时间:2018-12-07 20:53:03

标签: django django-models

全部,我已经阅读了以前类似问题的文章,似乎都无法解决我的问题。

我正在为幻想足球联赛创建一个网站,作为Django的介绍。但是,每次尝试将模型中的内容插入HTML模板时,都会遇到错误。显示的错误是'TypeError:'PastSeasons'对象不可迭代',其中'PastSeasons'是模型。

我知道PostgreSQL表和数据库已正确设置,因为我可以通过pgadmin4和Django / admin站点查看它。我还可以运行“ python manage.py shell”并查询模型,返回查询集,然后使用与views.py文件完全相同的语法遍历该查询集。

models.py

from django.db import models

class PastSeasons(models.Model):
    year = models.IntegerField()
    place = models.IntegerField()
    team_name = models.CharField(max_length=100, unique=False)
    owner = models.CharField(max_length=100, unique=False)
    wins = models.IntegerField()
    losses = models.IntegerField()
    ties = models.IntegerField()
    points_for = models.FloatField()
    points_against = models.FloatField()

def __str__(self):
    return str(self.year)

views.py

from django.shortcuts import render
from .models import PastSeasons

def past(request):
    past_list = PastSeasons.objects.all()
    past_szn = {'past_szn': past_list}
    return render(request, 'basic_app/past_seasons.html', past_szn)

HTML模板(为了简洁起见,还有其他列标题和样式元素):

{% if past_szn %}
{% for i in past_szn %}
            <tr>
              <th scope="row">{{ i.year }}</th>
              <td>{{ i.place }}</td>
              <td>{{i.owner}}</td>
              <td>{{i.wins}}</td>
              <td>{{i.losses}}</td>
              <td>{{i.ties}}</td>
              <td>{{i.points_for}}</td>
              <td>{{i.points_against}}</td>
            </tr>
{% endfor %}
{% endif %}

非常感谢任何建议。谢谢!

0 个答案:

没有答案