Django: как использовать "or" в методе фильтра django?

Я хочу фильтровать модель по кортежу, не знаю, правильное ли это предложение, но у меня есть модель, которая выглядит следующим образом

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)

и что я хочу сделать в представлениях, если отфильтровать CourseRating по кортежу, который я определил выше под названием 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")
Вернуться на верх