Переадресация Django прервана браузером? - PullRequest
0 голосов
/ 25 марта 2019

У меня очень простое представление, предназначенное для отслеживания кликов пользователей и перенаправления их на внешнюю страницу:

def redirect_view(request, uu_id):
    my_model = MyModel.objects.get(uuid = uu_id)
    my_model.clicked_link = True
    my_model.save()
    return redirect('https://www.some-other-site.com')

Примерно для половины пользователей, которые взаимодействуют с этим видом, он работает отлично! Наши журналы показывают 302 ответа, а затем ничего от пользователя.

Для другой половины наших пользователей они странным образом перенаправляются на базовый URL нашего сайта в http, тогда, поскольку у нас есть SECURE_SSL_REDIRECT = True, они перенаправляются на https, и, наконец, потому что они не аутентифицированы, они перенаправляются для аутентификации.

Наши журналы для этого типа пользователей выглядят примерно так:

Feb 21 10:04:51 myapp heroku/router:  at=info method=GET path="/redirect-url" host=mysite.com request_id=123 fwd="..." dyno=web.1 connect=0ms service=25ms status=302 bytes=268 protocol=https 
Feb 21 10:04:51 myapp heroku/router:  at=info method=GET path="/" host=mysite.com request_id=456 fwd="..." dyno=web.1 connect=1ms service=3ms status=301 bytes=262 protocol=http 
Feb 21 10:04:52 myapp heroku/router:  at=info method=GET path="/" host=mysite.com request_id=789 fwd="..." dyno=web.1 connect=0ms service=2ms status=302 bytes=360 protocol=https 

В нашем коде нет ничего, что указывало бы на перенаправление на наш базовый URL, поэтому я думал, что у них есть какая-то настройка браузера, которая ограничивает внешние перенаправления.

Может ли это быть как-то вызвано Джанго? Если это не проблема Django, то чем это вызвано? и что было бы хорошим обходным путем?

...