在Django视图中等待另一个请求

时间:2020-06-12 14:42:45

标签: python django

标题几乎可以自我解释,我需要一个视图来等待另一个视图被调用或超时。看起来像这样:

class WaitingView(APIView):
    def post(self, request):
        ...do_things
        called = wait_for_DeblockingView_or_timeout()
        if called:
            return Response(200)
        return Response(408)


class DeblockingView(APIView):
    def post(self, request):
        ...do_things
        send_some_signal_to_unlock()
        return Response(200)

我已经尝试使用Eventthreading方法的wait()模块的set()对象,但是我做错了要么这不是该用例的方法。有关尝试here的更多信息。

1 个答案:

答案 0 :(得分:0)

您可以使用session变量在视图之间共享数据:

class WaitingView(APIView):
    def post(self, request):
        ...do_things
        called = request.session.get('deblocking_call')
        if called is True:
            del request.session['deblocking_call']
            return Response(200)
        return Response(408)


class DeblockingView(APIView):
    def post(self, request):
        ...do_things
        request.session['deblocking_call'] = True

        return Response(200) ## I would use 'return redirect("waiting_view")'