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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:55:18