Mathiu2002
Mathiu2002

Reputation: 45

Django view that redirects to another domain

How to redirect to another domain with python django and pass additional informations?

For example i want to redirect to https://ssl.dotpay.pl/test_payment/ and give additional informations so url will look like this https://ssl.dotpay.pl/test_payment/?id=123456&amount=123.00&description=Test but I don't want to generate url in my view, just pass the data in json or something like that.

What is the way to do this?

Upvotes: 2

Views: 1292

Answers (2)

Nebulosar
Nebulosar

Reputation: 1855

this is generated url by what i meant 'ssl.dotpay.pl/test_payment/?id=123456&amount={}&description={}'.format(123.00, 'Test')

Be sure to put a protocol before your url (or at least two slashes). This way, Django will see it as an absolute path. From your comment it seems you redirect to ssl.dotpay.pl what will be seen as a local path rather than another domain.

This is what I came across. (See question I put on stackoverflow and answer)

So in your case, you can use the following:

class MyView(View):
    def get(self, request, *args, **kwargs):
        url = 'https://ssl.dotpay.pl/test_payment/'
              '?id=123456&amount={}&description={}'.format(123.00, 'Test')
        return HttpResponseRedirect(url)

You could also use redirect from django.shortcuts instead of HttpResponseRedirect

Upvotes: 1

Laurent S
Laurent S

Reputation: 4326

Assuming you are using a functional view, you could probably do something like this in your view:

from django.http import HttpResponseRedirect

def theview(request):
    # your logic here
    return HttpResponseRedirect(<theURL>)

Upvotes: 1

Related Questions