我想用一个元组来过滤一个模型,我不知道这句话是否正确,但我有一个这样的模型

USER_COURSE_RATING = (
        ("1.0", "1.0 - Poor"),
        ("2.0", "2.0 - Fair"),
        ("3.0", "3.0 - Good"),
        ("4.0", "4.0 - Amazing"),
        ("5.0", "5.0 - Excellent"),
)

class Course(models.Model):
    course_title = models.CharField(max_length=10000)

class CourseRating(models.Model):
    course = models.ForeignKey(Course, on_delete=models.CASCADE)
    rating = models.CharField(max_length=1000, choices=USER_COURSE_RATING, null=True, blank=True)

如果要根据我在上面定义的元组USER_COURSE_RATING 过滤数据,我想在视图中做什么

我写了这个视图,但它似乎不起作用,注意:我没有收到任何错误消息,但它不起作用

def course_detail(request, course_slug):
   rating_count = CourseRating.objects.filter(course=course, rating="3.0" or "4.0" or "5.0").count()

因此,我只想在评级为3.0、4.0或5.0时显示计数

推荐答案

可以使用in测试特定列是否具有多个值之一.

例如:

tbl.objects.filter(course=course, rating__in=["3.0","4.0","5.0"])

这类似于Python中的等效成员资格测试功能:

rating = "3.0"
if rating in ["3.0", "4.0", "5.0"]:
    print("Yes")

Python相关问答推荐

为什么使用SciPy中的Distance. cos函数比直接执行其Python代码更快?

有什么方法可以修复奇怪的y轴Python matplotlib图吗?

Pandas 按照特殊规则保留每n行

云上Gunicorn的Flask-socketIO无法工作

inspect_asm不给出输出

将numpy数组存储在原始二进制文件中

通过优化空间在Python中的饼图中添加标签

处理(潜在)不断增长的任务队列的并行/并行方法

按列分区,按另一列排序

将两只Pandas rame乘以指数

OR—Tools中CP—SAT求解器的IntVar设置值

Pre—Commit MyPy无法禁用非错误消息

Stacked bar chart from billrame

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

实现神经网络代码时的TypeError

如何指定列数据类型

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

python中csv. Dictreader. fieldname的类型是什么?'

用SymPy在Python中求解指数函数

使用字典或列表的值组合