【发布时间】:2022-01-28 20:10:50
【问题描述】:
我正在尝试将一种方法响应调用到 Django REST 框架中的另一种方法中。
views.py:
@api_view(['GET','POST'])
def GetCurrentRunningActivityForAudit(request, UserID):
if request.method == 'GET':
print("current running activity--userid--", UserID)
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[sp_GetCurrentRunningActivityAudit] @UserId=%s',(UserID,))
result_set = cursor.fetchall()
data = []
for row in result_set:
TaskId=row[0]
TaskName = row[1]
Source = row[2]
SID = row[3]
type = row[4]
data.append({
"TaskId": TaskId, "TaskName":TaskName,"Source":Source,
"SID":SID, "type":type, "IsActive":GetCurrentSubTaskSTatus(TaskId)})
return Response(data[0])
return Response(data)
我将此方法响应传递给上述方法响应,即。 GetCurrentRunningActivityForAudit 但它显示为响应类型的对象不是 JSON 可序列化的
def GetCurrentSubTaskSTatus(taskid):
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[USP_GetCurrentTaskStatus] @taskid=%s',(taskid,))
result_set = cursor.fetchall()
for row in result_set:
IsActive =row[0]
return Response({"IsActive":IsActive})
【问题讨论】:
-
为什么
GetCurrentSubTaskSTatus返回一个Response而不仅仅是一个字典,它不是一个视图并且它的返回值被用作另一个字典的一部分? -
GetCurrentSubTaskStatus 返回存储过程的响应,该响应应该用于 GetCurrentRunningActivityForAudit 响应
-
Response对象是应该从 API 视图返回的 HTTP 响应,它并不意味着从只返回一些结果的函数返回。从GetCurrentSubTaskSTatus函数中删除它并返回一个字典
标签: django django-rest-framework django-views