Post 使用 Django 请求外部 Rest 服务 - 使用返回的 json 更新模型

Post request to external Rest Service using Django - use returned json to update model

我需要一些关于使用 Camunda Rest API 和 Django 实现以下细节的最佳方式的建议:

1) 用户会看到一个表单 - 选择详细信息,然后使用 POST 向 camunda 请求 'http://localhost:8080/engine-rest/process-definition/key/Process_B_PerProject/start'

此 POST 请求中发送的详细信息包含 JSON RAW 中的 3 个变量:格式为:

{"variables":
    {"UserID" : {"value" : "user.", "type": "String"},
     "OrganisationID" : {"value" : "some value", "type": "String"}
    },
     "businessKey" : "SomeBusinessKey"
    }

来自 views.py

从django.shortcuts导入渲染 来自 django.views.generic 导入模板视图 从 .forms 导入 StartProject

 import requests

 class StartProcessView(TemplateView):

    template_name = 'startdeliveryphase.html'

    def get(self, request):
        form = StartProject()
        return render(request, self.template_name, {'form':form})





    def post(self,request):
        form = StartProject()
        url = "http://localhost:8080/engine-rest/process-definition/key/Process_B_PerProject/start"
        payload = "{\"variables\":\r\n    {\"Username\" : {\"value\" : \"[form.Username]\", \"type\": \"String\"},\r\n     \"OrganisationInitiating\" : {\"value\" : \"[form.OrganisationInitiator]\", \"type\": \"String\"}},\r\n     \"businessKey\" : {form.businessKey}\r\n    }"
        headers = {
        'Content-Type': 'application/json'
        }
        response = requests.request("POST", url, headers=headers, data = payload)
        return render(response, self.template_name, {'form':form})

响应以 200 连同 JSON 有效负载的形式返回:

 {
    "links": [
        {
            "method": "GET",
            "href": "http://localhost:8080/engine-rest/process-instance/fbff8359-84cd-11ea-a2e1-00155d891509",
                "rel": "self"
            }
        ],
        "id": "fbff8359-84cd-11ea-a2e1-00155d891509",
        "definitionId": "Process_B_PerProject:1:71921815-737c-11ea-91a6-00155d891509",
        "businessKey": "SomeBusinessKey",
        "caseInstanceId": null,
        "ended": false,
        "suspended": false,
        "tenantId": null
}

问题 1 - 从这部分开始 - 我如何从表单中获取变量到有效负载中: 我尝试过的方法得到了 500 个响应 - 所以这里出了点问题。

问题2 - 使用响应更新模型的方法是什么?

问题一: 使用 response.json() 从响应中获取 json,查看 Request doc

问题二: 为了保存使用 create or update method Create or update django