2 votes

Django Rest Framework - paramètres de requête avec caractères spéciaux

Mon modèle est :

class Skill(models.Model):
    skill = models.CharField()

mon point de vue :

class SkillViewset(viewsets.ModelViewSet):
    queryset = Skill.objects.all()
    serializer_class = SkillSerializer

    filter_backends = (filters.SearchFilter, filters.OrderingFilter )
    search_fields = ('id', 'skill')
    ordering_fields = '__all__'

    def get_queryset(self):
        queryset = property_models.Skill.objects.all()
        skill = self.request.query_params.get('skill', None)
        if skill is not None:
            queryset = queryset.filter(skill__icontains=skill)
        return queryset

L'une de mes langues est le "C++"

Cela fonctionne :

Skill.objects.filter(skill__icontains='C++')

Cependant, l'appel à mon api ne fonctionne pas :

/skills/?skill=c++

3voto

Gabriel Samain Points 389

C'est parce que vous devez encoder l'URL de vos paramètres de la manière suivante c++ devient c%2B%2B https://www.w3schools.com/tags/ref_urlencode.asp

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X