Как заставить выбор работать с REST-фреймворком Django

У меня есть модель:

class Film(models.Model):
    title = models.CharField(max_length=250)
    starring = models.CharField(max_length=250)
    description = models.CharField(max_length=500)
    rating = models.CharField(max_length=2, choices=(('1','U'),('2','PG'),('3','12A'),('4','12'),('5','15'),('6','18')),default='18')
    length = models.IntegerField()

    def __str__(self):
        return f"{self.title}, {self.rating}"

и сериализатор:

class FilmSerializer(serializers.ModelSerializer):
    class Meta:
        model = Film
        fields = ('title','description','starring','rating','length')
    
    def to_representation(self, instance):
        data = super().to_representation(instance)
        hours = math.floor(int(data['length']) / 60)
        minutes = int(data['length']) % 60
        data['length'] = f"{hours}h {minutes}m"
        return data

и представление api:

class FilmList(ListAPIView):
    queryset = Film.objects.all()
    serializer_class = FilmSerializer
    filter_backends = (DjangoFilterBackend,)
    filterset_fields = ('rating',)

Когда я использую Django Rest, я могу фильтровать по рейтингу, но только если я удалю определение choices из модели. Когда определение выбора присутствует на "рейтинге", фильтр вообще ничего не возвращает.

Я хотел бы использовать это для фильтрации по "рейтингу". Есть ли способ обойти это? спасибо

Вернуться на верх