Перенаправление в Django с определенным кодом состояния - PullRequest
0 голосов
/ 18 декабря 2018

Если пользователь пытается получить доступ к странице, я хочу, чтобы он был перенаправлен на страницу входа, но с кодом состояния 401 (не авторизован).Например:

if not 'logged_user' in request.session:
    return redirect('mqr_admin:login', status=401)

Но функция redirect() не имеет параметра status, как функция render().Что мне делать?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Это не то, что вы можете сделать.

В HTTP перенаправления - это коды 3xx, в основном 301 и 302. Именно так браузер знает, что вообще нужно перенаправлять.

Если вы вернете код состояния 4xx, браузер будет воспринимать его как ошибку, а не как перенаправление.

0 голосов
/ 18 декабря 2018

Используйте HttpResponse

from django.http import HttpResponse
def yourView(request):    
    return HttpResponse('401 Unauthorized', status=401)

Решение было найдено здесь: Как мне вернуть 401 Несанкционированный в Джанго?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...