Джанго: страница не перенаправляет должным образом - PullRequest
0 голосов
/ 08 марта 2019

Я хочу проверить в базе данных, заполнил ли пользователь форму модели Payment_receipt при регистрации, при следующем входе пользователя в систему. Если пользователь сначала не заполнил форму, он будет быть перенаправлены на страницу с именем plan_select. Я попробовал эту точку зрения. Но выдает ошибку: « Страница не перенаправляет должным образом ».

def homeview(request):
    if request.user.is_authenticated:
        if Payment_receipt.objects.filter(user = request.user).exists():
            return redirect('home')
        else:
            return redirect('plan_select')
    else:
        return render(request, 'services/home.html')

Что могло пойти не так?

Я хочу сделать ту же проверку с другими моделями в этом представлении при условии if request.user.is_authenticated:. Как правильно перенаправить на основе условий?

1 Ответ

0 голосов
/ 08 марта 2019

Вы не показали свои шаблоны URL, но похоже, что return redirect('home') перенаправляет в то же представление, создает цикл перенаправления.

Возможно, вы хотите вместо этого отобразить шаблон:

def homeview(request):
    if request.user.is_authenticated:
        if Payment_receipt.objects.filter(user = request.user).exists():
            return render(request, 'services/home.html')
        else:
            return redirect('plan_select')
    else:
        return render(request, 'services/home.html')

Вы можете немного упростить это, чтобы избежать дублирования строки return render():

def homeview(request):
    if request.user.is_authenticated:
        if not Payment_receipt.objects.filter(user = request.user).exists():
            return redirect('plan_select')
    return render(request, 'services/home.html')
...