05
Дек
2016

Вызов функции view через redirect с параметрами

У меня есть urls.py:

urlpatterns = [
    url(r'^$', views.index, {'check': False}),
]

Есть view.py:

def index(request, check=False):
    if check:
        return HttpResponse("Hello, world. You're at the test index.")
    else:
        return HttpResponseRedirect(reverse('autorisation:check_auth'))

В методе index используется параметр check - авторизирован пользователь или нет. Задумка такая: при первом входе на страницу параметр имеет значение False и исходя из этого перекидывает запрос на авторизацию. Авторизация должна вернуться в этот же метод index, но с check = True.

Redirect из метода check_auth (не рабочий):

def check_auth(request):
    return redirect('app_test:index', check=True)

Как правильно реализовать данную затею? Желательно не изменяя views.py - без параметров url.

Ошибка:

NoReverseMatch at /auth/check_auth
Reverse for 'index' with arguments '()' and keyword arguments '{'check': True}' not found. 0 pattern(s) tried: []

Источник: https://ru.stackoverflow.com/questions/599874/%D0%92%D1%8B%D0%B7%D0%BE%D0%B2-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-view-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-redirect-%D1%81-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0%D0%BC%D0%B8

Share

Тебе может это понравится...