我有 3 个表 PC(ID, PcNAME, Brand) , CellPhoness(ID, CellPhoneName, Brand) , Printers(ID, PrinterName, Brand) 。 3张表之间没有关系。我想在用户可以输入搜索字符串的位置运行查询,程序将搜索 3 个模型以查找数据所在的位置,并以 JSON 响应的形式返回相同的 Id、名称和品牌。
最佳答案
你可以这样做:
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/