request.path_info не изменил URL-адрес в адресной строке браузера для меня, но это перенаправление сделало:
from django.shortcuts import redirect
class DomainRedirectMiddleware(object):
def process_request(self, request):
if request.path.startswith('/core/mypage/') and not request.GET:
return redirect('/core/mypage/?key=value') # works!
#request.path_info = '/core/mypage/?key=value' # works, but does not change url in browser address bar
Django также предоставляет «Приложение перенаправления» начиная с Django 1.3, которое включает в себя следующее промежуточное ПО: 'django.contrib.redirects.middleware.RedirectFallbackMiddleware'.См. документацию по перенаправлению приложения , она позволяет создавать перенаправления из интерфейса администратора.
Я попробовал тот же редирект с помощью приложения, и это сработало.Ура!