0

I want to pass JSON data with redirect URL, I used HttpResponseRedirect

path('session_data_req/', SessionDataFetch.as_view(url='http://0.0.0.0:8080/reciever/')),


class SessionDataFetch(APIView):

    url = None
    pattern_name = None

    def get(self, request, *args, **kwargs):

        url = self.get_redirect_url(*args, **kwargs)
        data = {"a": "a", "b": "b"}

        return HttpResponseRedirect(url, data=data)

but I am getting an error

__init__() got an unexpected keyword argument 'data'

I also tried to use

return redirect(url, kwargs={"ok", "ok"})

but not getting kwargs data in redirected URL views

class ReceiverView(APIView):
    def get(self, request, *args, **kwargs):
        print(kwargs)
        # data = request.data
        data = kwargs
        return Response({"a": "----| In receiver |----", "data": data})

response:

{
    "a": "----| In receiver |----",
    "data": {}
}

Is there any way to pass data in the redirect function?

E_net4
  • 27,810
  • 13
  • 101
  • 139
  • just pass them as query params using ?data=jsonstring and in ReceiverView retrive them,The kwargs fetches only when there are path params – Pavan Kumar T S Sep 02 '20 at 12:40
  • I have sensitive data ..so I am not passing in a params.... url = url + f"?data={data}" ..its working by query_params, I can encode and pass.. but ..I want to post and also want to know how can we pass post body data.. – shiv shankar keshari Sep 02 '20 at 12:42
  • use sessions if require to store and clear the variable once retrieve. Or else put optional path param and pass kwargs – Pavan Kumar T S Sep 02 '20 at 12:49
  • I want to post JSON body..not interested to store data.... here basically I need an answer how can we pass JSON data as we pass in post request APIs – shiv shankar keshari Sep 02 '20 at 12:54
  • https://stackoverflow.com/a/3024528/13499618 This is a restriction of HTTP that POST data cannot go with redirects. – Anubhav Ujjawal Sep 02 '20 at 13:29

0 Answers0