python - 在 Django Rest Framework 中搜索多个模型的表

标签 python django django-models django-rest-framework

我有3张 table

  • PC(ID、PcNAME、品牌)
  • CellPhones(ID, CellPhoneName, Brand)
  • 打印机(ID、打印机名称、品牌)

3个表之间没有任何关系。我想运行一个查询,用户可以在其中输入搜索字符串,程序将搜索 3 个模型以查找数据所在的位置,并以 JSON 响应的形式返回相同的 ID、名称和品牌。

最佳答案

你可以这样做:

  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})
    

您需要为每个对象创建序列化程序,请查看 this documentation .

关于python - 在 Django Rest Framework 中搜索多个模型的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53809773/

相关文章:

python - 使用自定义详细名称覆盖 Django 管理中的 list_display

python - Python中的类工厂

python - Python Django官方教程 “Polls”,初学者会遇到令人沮丧的错误

python - 将数据写入xls并在python-django中下载

python - 在同一层次结构中的不同类之间使用 Django ORM 语法中的 UNION

python - 数据帧前几行的平均值

python - Django 1.9 : Add a custom button to run a python script on clicking in admin site of a app/model

python - 使用 Django 运行 bash 脚本

python - “RawQuerySet”对象没有属性 'key'

python - Django - 如何在同一模型的保存方法中过滤数据