在姜戈睡觉框架中进行多型号表格搜索

问题描述

我有3个表

  • PC(ID, PcNAME, Brand)
  • CellPhoness(ID, CellPhoneName, Brand)
  • Printers(ID, PrinterName, Brand)

这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。

相关文章