Как вернуть несколько ответов в Django
Я пытаюсь вернуть тот же ответ после завершения цикла, но не смог найти подход к его реализации.
Вот, что я пробовал и ошибка, которую я получаю локальная переменная 'TaskId' ссылается перед присвоением
views.py:
def GetCurrentRunningActivity(UserID):
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[sp_GetCurrentRunningActivity] @UserId=%s',(UserID,))
result_set = cursor.fetchall()
cursor_set = cursor.fetchall()
for row in result_set:
TaskId=row[0]
Number=row[1]
Opened=row[2]
Contacttype=row[3]
Category1=row[4]
State=row[5]
Assignmentgroup=row[6]
CountryLocation=row[7]
Openedfor=row[8]
Employeenumber=row[9]
Shortdescription=row[10]
Internaldescription=row[11]
Additionalcomments=row[12]
TaskName = row[1]
print("Number", Number)
return Response({ "TaskId": TaskId, "Number":Number,"Opened":Opened, "Contacttype":Contacttype,
"Category1":Category1, "State":State, "Assignmentgroup":Assignmentgroup, "CountryLocation":CountryLocation,
"Openedfor":Openedfor, "Employeenumber":Employeenumber , "Shortdescription":Shortdescription,
"Internaldescription":Internaldescription, "Additionalcomments":Additionalcomments,"TaskName":TaskName},status=status.HTTP_200_OK)
return Response({ "TaskId": TaskId, "Number":Number,"Opened":Opened, "Contacttype":Contacttype,
"Category1":Category1, "State":State, "Assignmentgroup":Assignmentgroup, "CountryLocation":CountryLocation,
"Openedfor":Openedfor, "Employeenumber":Employeenumber , "Shortdescription":Shortdescription,
"Internaldescription":Internaldescription, "Additionalcomments":Additionalcomments,"TaskName":TaskName},status=status.HTTP_200_OK)
Что-то не так с логикой вашего цикла: вы пытаетесь "возвращаться" каждый раз в конце цикла. Вместо этого вы должны собирать данные в список, а затем возвращать Response только один раз, вот так:
def GetCurrentRunningActivity(UserID):
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[sp_GetCurrentRunningActivity] @UserId=%s',(UserID,))
result_set = cursor.fetchall()
cursor_set = cursor.fetchall()
data = []
for row in result_set:
TaskId=row[0]
Number=row[1]
Opened=row[2]
Contacttype=row[3]
Category1=row[4]
State=row[5]
Assignmentgroup=row[6]
CountryLocation=row[7]
Openedfor=row[8]
Employeenumber=row[9]
Shortdescription=row[10]
Internaldescription=row[11]
Additionalcomments=row[12]
TaskName = row[1]
print("Number", Number)
data.append({"TaskId": TaskId, "Number":Number,"Opened":Opened,
"Contacttype":Contacttype, "Category1":Category1, "State":State,
"Assignmentgroup":Assignmentgroup, "CountryLocation":CountryLocation,
"Openedfor":Openedfor, "Employeenumber":Employeenumber ,
"Shortdescription":Shortdescription,
"Internaldescription":Internaldescription,
"Additionalcomments":Additionalcomments,"TaskName":TaskName
})
return Response({"data": data}, status=status.HTTP_200_OK)
И, пожалуйста, не забудьте следить за PEP8