1
resposta

[Dúvida] Filtro com mais de um parâmetro

Quero desenvolver um mecanismo de busca, onde eu insiro o nome de um sintoma, e o retorno é um medicamento. Porém, não sei como fazer caso precise buscar mais de um sintoma por vez (no caso, pelo id do sintoma).

No momento, a url está conforme a aula ainda:

`path('sintoma/<int:pk>/indicacao/', ListaSintomaMedicamento.as_view())

Como posso fazer para inserir mais de um "id" na pesquisa?

1 resposta

Fala amigon tive um dúvida parecida, eu tinha id de vários itens e queria buscar o nome deles, ao invez de eu fazer um GET para cada item eu envio uma lista com os id dos itens e a minha API retorna o nome deles, eu fiz da seguinte forma:

No arquivo views.py eu adicionei:

@action(methods=['get'], detail=False, url_path='teste')
    def get_list_itens_id(self, request):
        list_key = []
        for id_item in request.data.getlist('list_id'):
            query = Item.objects.filter(id=id_item).values('id', 'nome')
            list_key.append(query[0])

        return Response(list_key)

Ai quando eu for fazer um get eu enviou mais ou menos assim:

requests.get('127.0.0.1:8000/itens/teste', data={"list_id":[1, 2, 3, 4]})

Dá uma olhada na documentação do Django-rest: https://www.django-rest-framework.org/api-guide/viewsets/ .

Talvez isso possa te ajudar.