全部,我已经阅读了以前类似问题的文章,似乎都无法解决我的问题。
我正在为幻想足球联赛创建一个网站,作为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 %}
非常感谢任何建议。谢谢!