Поиск в таблицах нескольких моделей в Django Rest Framework - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть 3 таблицы ПК (ID, PcNAME, бренд) , CellPhoness (ID, CellPhoneName, бренд) , Принтеры (ID, имя принтера, бренд) .Нет никакой связи между 3 таблицами.Я хотел бы выполнить запрос, в котором пользователь может ввести строку поиска, и программа будет искать в 3 моделях, где существуют данные, и возвращать их с идентификатором, именем и маркой в ​​форме ответа JSON.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете сделать что-то вроде этого:

  1. Получить текст запроса из параметров запроса
  2. Фильтровать по нему
  3. Возвращать данные сериализатора

    def view(request):
        query = request.GET.get("query", None)
        pcs = PC.objects.all()
        cell_phones = CellPhone.objects.all()
        printers = Printer.objects.all()
    
        if query:
            pcs = pcs.filter(name__icontains=query)
            cell_phones = cell_phones.filter(name__icontains=query)
            printers = printers.filter(name__icontains=query)
    
        return JsonResponse("pcs": PCSerializer(instances=pcs, many=True).data,
                            "cell_phones": CellPhoneSerializer(instances=cell_phones, many=True).data,
                            "printers": PrinterSerializer(instances=printers, many=True).data)
    

Вам необходимо создать сериализаторы для каждого объекта, пожалуйста, ознакомьтесь с этим https://www.django -rest-framework.org / api-guide / serializers /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...