如何 return 原始 sql 查询作为 json 对象?(Django)

How to return raw sql queries as json objects?(Django)

我正在使用以下函数将 sql 连接查询显示为 json:

def toggle_query(request,id):
    obj = DibbsSpiderDibbsMatchedProductFieldsDuplicate.objects.raw('''SELECT *
    FROM dibbs_spider_solicitation
    JOIN dibbs_spider_dibbs_matched_product_fields_duplicate
    ON dibbs_spider_solicitation.nsn = {nsn};'''.format(nsn=id))

    context = serializers.serialize('json',obj)

    return JsonResponse(context,safe=False)

这会将数据显示为:

"[{\"model\": \"dibbs_spider.dibbsspiderdibbsmatchedproductfieldsduplicate\", \"pk\": 39, \"fields\": {\"nsn\": \"1650011162908\", \"nsn2\": \"6550015746831\", \"cage\": \"34807\", \"part_number\": \"6903A-J\", \"company_name\": null, \"supplier\": \"GraingerOM\", \"cost\": \"18.16\", \"list_price\": \"19.12\", \"gsa_price\": null, \"hash\": \"665\", \"nomenclature\": \"HOUSING, CONTROL MOD\", \"technical_documents\": \"Tech Docs\", \"solicitation\": \"SPE2DS22T1575\", \"status\": \"Awarded  \", \"purchase_request\": \"0091648844\nQty: 5\", \"issued\": \"2021-12-09\", \"return_by\": \"2021-12-14\", \"file\": \"https://dibbs2.bsm.dla.mil/Downloads/RFQ/5/SPE2DS22T1575.PDF\", \"vendor_part_number\": \"269P71\", \"manufacturer_name\": \"LAMOTTE\", \"product_name\": \"Reagent Tablet Type 0 to 4 ppm Range\", \"unit\": \"EA\"}}, {\"model\": 

如何删除不属于此处数据的\符号?

您无法删除它,因为当您将对象序列化为 JSON 时,需要 \ 才能转义 " 和 `.您可能最好将响应变成 dict() 和 return 代替。