Django模型数据获取问题:分类筛选时出错求助
Django影视项目分类筛选影片数据问题解决
常见错误排查与修复步骤:
确认模型关联关系
若影片模型(如Movie)与分类模型(如Category)为外键关联,检查外键字段名是否准确。例如:# 模型定义示例 class Category(models.Model): name = models.CharField(max_length=50) class Movie(models.Model): title = models.CharField(max_length=100) category = models.ForeignKey(Category, on_delete=models.CASCADE)这里外键字段是
category,筛选时要对应使用category__id或直接关联对象。检查视图筛选逻辑
从URL或GET参数获取分类标识后,筛选语法要正确:# 视图示例(URL捕获分类ID) from django.shortcuts import get_object_or_404, render def movie_list_by_category(request, cate_id): # 用get_object_or_404避免分类不存在引发的错误 category = get_object_or_404(Category, id=cate_id) # 反向查询分类下的所有影片,比filter更简洁 movies = category.movie_set.all() return render(request, 'movie_list.html', {'movies': movies, 'current_category': category})若用GET参数传递分类名称,筛选代码应为:
cate_name = request.GET.get('cate_name') movies = Movie.objects.filter(category__name=cate_name)验证模板链接传参
分类列表的跳转链接要正确传递参数,确保URL名称与配置一致:<!-- 模板中分类链接示例 --> {% for cate in category_list %} <a href="{% url 'movie_category' cate.id %}">{{ cate.name }}</a> {% endfor %}对应的URL配置需匹配:
path('category/<int:cate_id>/', views.movie_list_by_category, name='movie_category')排查字段名拼写错误
最容易踩坑的就是字段名拼写错误,比如把category写成cate、categories,或者筛选时用category而不是category_id(当传递的是ID值时),这类错误会直接抛出字段不存在的异常。
内容的提问来源于stack exchange,提问作者yakummi
相关产品推荐
相关产品推荐

