如何在 Django 中 return 多重响应

How to return multiple response in Django

我试图在循环结束后 return 相同的响应,但我无法找到实现它的方法。

在这里,我尝试过的错误是在赋值前引用了局部变量'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)

这里的循环逻辑有问题:每次在循环结束时你都试图“return”。相反,您应该将数据收集到列表中,然后 return 像这样仅响应一次:

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