You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django开发报错:'Movies' object is not iterable 求助

解决Django中'Movies' object is not iterable错误

你的报错核心原因是在视图里把模型类本身传给了模板,而非查询到的电影实例集合。

看你的views.py代码:

def index(request):
    movie = Movies.objects.all()
    return render(request, 'movies/index.html', {'movies': Movies})

这里Movies.objects.all()获取到的是可迭代的QuerySet(电影列表),但你返回上下文时传的是Movies——也就是模型类本身,模板里的{% for movie in movies %}自然无法迭代一个类对象。

修正后的views.py代码

from django.shortcuts import render
from .models import Movies

def index(request):
    # 把变量名改成movies更贴合语义,同时把查询结果传给模板
    movies = Movies.objects.all()
    return render(request, 'movies/index.html', {'movies': movies})

额外建议

Django模型类的命名规范是用单数形式(比如Movie而非Movies),这样Django自动生成的数据库表名会是movies,刚好匹配你的上下文变量名,也能解决你提到的对象显示为'moviess'的问题。修改模型类名后记得迁移数据库:

python manage.py makemigrations
python manage.py migrate

内容的提问来源于stack exchange,提问作者Sesshōmaru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:01:05