首页 > 解决方案 > 登录后重定向用户而不使用 LOGIN_REDIRECT_URL 但来自views.py

问题描述

我有一个 django 应用程序,我在 settings.py 中使用 auth_views.LoginView 作为我的登录页面。我希望用户在登录时重定向到自定义 url,而无需更改 settings.py 和 views.py。这就是我的代码的工作方式:

def reserve_seat(request, movie_id, seat_id):
    if request.user.is_authenticated:
        print(request.user)
        new_ticket = Ticket(
            movie=Movie.objects.get(id=movie_id),
            user=request.user,
            seat=Seat.objects.get(id=seat_id)
        )
        new_ticket.save()
        return redirect('list_seats', movie_id)
    else:
        return redirect('/login')

我希望用户在登录时自动重定向path('<int:movie_id>/seats', list_seats, name='list_seats'),到此路径

我该如何处理?

标签: pythondjango

解决方案


谢谢,我发现我必须使用此代码并解决了我的问题。

@login_required(login_url='/login')
def reserve_seat(request, movie_id, seat_id):
if request.user.is_authenticated:
    print(request.user)
    new_ticket = Ticket(
        movie=Movie.objects.get(id=movie_id),
        user=request.user,
        seat=Seat.objects.get(id=seat_id)
    )
    new_ticket.save()
    return redirect('list_seats', movie_id)

推荐阅读