Django:如何在 Django 过滤方法中使用 "or"?
Django: how to use "or" in django filter method?
我想按元组过滤模型,我不知道这句话是否适合使用,但我有一个看起来像这样的模型
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
的元组过滤 CourseRating
我已经编写了视图,但它似乎不起作用,注意:我没有收到任何错误消息,但它不起作用
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")
我想按元组过滤模型,我不知道这句话是否适合使用,但我有一个看起来像这样的模型
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")