Ошибка утверждения - вызов метода в другом методе в Django
Я создал два API ("startshift", "endshift"), когда пользователь нажимает на кнопку "startshift" и "endshift", вызывается еще один API "UserShiftDetailsAPI", который возвращает различные ответы в зависимости от выбора пользователем кнопки. Эти API работают правильно. Как я могу добиться этого
Я создал условный оператор в "UserShiftDetailsAPI" для обоих "UserStartShift" и "UserStopShift", но он выдает ошибку утверждения. Я не знаю, как вызвать оба метода API внутри функции.
Вот, что я пробовал
views.py:
startshift
@api_view(['POST', 'GET'])
def UserStartShift(request):
if request.method == 'GET':
users = tblUserShiftDetails.objects.all()
serializer = UserShiftStartSerializers(users, many=True)
return Response(serializer.data)
if request.method == 'POST':
UserId = request.data.get('UserId')
Ip = request.data.get('Ip')
PortNumber = request.data.get('PortNumber')
cursor = connection.cursor()
r=cursor.execute('EXEC [dbo].[Usp_StartShift] @UserId=%s, @IP=%s, @Port=%s', (UserId, Ip, PortNumber,))
return Response(True, status=status.HTTP_200_OK)
endshift
@api_view(['GET', 'POST'])
def UserStopShift(request, UserId):
if request.method == 'GET':
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[USP_StopShift] @UserId=%s',(UserId,))
return Response(True)
elif request.method == 'POST':
serializer = UserShiftEndSerializers(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
В методе GET я применил условие, но он показывает ошибку. Он должен возвращать ответ на основе метода "UserStartShift и "UserStopShift""
UserShiftDetails
@api_view(['GET'])
def UserShiftDetailsView(request, userid):
try:
users = tblUserShiftDetails.objects.filter(UserId=userid)
except tblUserShiftDetails.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
if UserStartShift == True:
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[USP_GetCurrentShiftDetails] @UserId=%s',(userid,))
result_set = cursor.fetchall()
for row in result_set:
row = row[0]
return Response({"IsStarted":True,"EstimatedShifEnd":(row + datetime.timedelta(hours=9)).strftime('%d-%m-%Y %H:%M %p'),"ReasonforAccess": "null"})
elif UserStopShift == True :
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[USP_GetCurrentShiftDetails] @UserId=%s',(userid,))
result_set = cursor.fetchall()
for row in result_set:
row = row[0]
return Response({"IsStarted":False,"EstimatedShifEnd":"null","ReasonforAccess": "null"})