У меня очень простое представление, предназначенное для отслеживания кликов пользователей и перенаправления их на внешнюю страницу:
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, то чем это вызвано? и что было бы хорошим обходным путем?