如何在Django中过滤数据库模型:筛选电影网站最新10条数据中的剧情片与喜剧片
解决方案:过滤指定分类的电影
嗨,这事儿其实挺简单的,只需要在你的查询集里加个过滤条件就行啦,我来给你一步步说清楚:
修改后的views.py代码
def home(request): user = request.user # 先筛选分类为DRAMA(对应值"D")或COMEDY(对应值"C")的电影,再按id倒序取最新10条 movies_obj = models.Movie.objects.filter(category__in=['D', 'C']).order_by('-id')[:10] return render(request,'index.html',{'user':user,'movies':movies_obj})
关键逻辑说明
category__in=['D', 'C']:这个条件会精准匹配category字段值为D(对应你定义的DRAMA分类)或者C(对应COMEDY分类)的电影,完美满足你只展示剧情片和喜剧片的需求。- 保留
order_by('-id')[:10]:确保过滤后的结果依然是按id倒序排列,取最新的10条数据,和你原来的逻辑保持一致。
小细节提醒(非必需)
顺便提一句,我看到你的models.py里有个小拼写错误:descritpion应该是description;另外year_of_production用TextField存储年份有点不太合适,建议换成IntegerField或者CharField(max_length=4),这样更贴合年份的存储逻辑哦~
内容的提问来源于stack exchange,提问作者user16773013




