无法在 Django 中将 null 转换为 strftime

cannot convert null to strftime in django

我正在尝试将时间转换为 12 小时格式,其中有几行时间为 NULL。我把它作为字典传递。我怎么能留下 NULL 行并用 have time

转换其他行

这里是我试过的

views.py

def GetUserInProgress(userid):
    
        cursor = connection.cursor()
        cursor.execute('EXEC [dbo].[sp_GetUserInProgress] @UserId=%s', (userid,))
        result_set = cursor.fetchall()
        data =[]
        for i in range(len(result_set)):

              data.append({
                'TaskId':result_set[i][0],
                'CreatedOn':result_set[i][13],
                'CreatedBy':result_set[i][14],
                'StartedOn':result_set[i][15],
                'ClosedOn':result_set[i][16],
                'Requester':result_set[i][17],
                'StartedOnPST':result_set[i][31],
                'ClosedOnPST':result_set[i][32],
                'ClosedonPST_Final':result_set[i][33].strftime('%d-%m-%Y %I:%M  %p'), 

            })
              
        return Response(data)
'ClosedonPST_Final':result_set[i][33].strftime('%d-%m-%Y %I:%M  %p') if result_set[i][33] else None

你可以检查一下

未测试,但应该可以:

def GetUserInProgress(userid):
    def _emptyIfNull(v):
        return v.strftime('%d-%m-%Y %I:%M  %p') if v else ""

    cursor = connection.cursor()
    cursor.execute('EXEC [dbo].[sp_GetUserInProgress] @UserId=%s', (userid,))
    return Response([{
        'TaskId':result_set[i][0],
        'CreatedOn': _emptyIfNull(result_set[i][13]),
        'CreatedBy': _emptyIfNull(result_set[i][14]),
        'StartedOn': _emptyIfNull(result_set[i][15]),
        'ClosedOn': _emptyIfNull(result_set[i][16]),
        'Requester': _emptyIfNull(result_set[i][17]),
        'StartedOnPST': _emptyIfNull(result_set[i][31]),
        'ClosedOnPST': _emptyIfNull(result_set[i][32]),
        'ClosedonPST_Final': _emptyIfNullresult_set[i][33],
    } for i in cursor.fetchall()])