How to add filters to a query dynamically in Django?

后端 未结 6 578
半阙折子戏
半阙折子戏 2021-02-06 09:56

In my viewSet I am doing a query,

queryset= Books.objects.all();

Now from an ajax call I get my filter values from UI i.e. age,gender, etc. of

6条回答
  •  我寻月下人不归
    2021-02-06 10:45

    You can do something like that

    class BooksAPI(viewsets.ModelViewSet):
        queryset = Books.objects.none()
    
    
    def get_queryset(self):
        argumentos = {}
        if self.request.query_params.get('age'):
            argumentos['age'] = self.request.query_params.get('age')
        if self.request.query_params.get('gender'):
            argumentos['gender'] = self.request.query_params.get('gender')
        if len(argumentos) > 0:
            books = Books.objects.filter(**argumentos)
        else:
            books = Books.objects.all()
        return books
    

提交回复
热议问题