如何在 Django 中使用 login_required 装饰器时禁用下一个 URL 参数?

我在 Django 中有以下项目文件夹结构:


.

|_blog/

|_django_blog/

|_users/

|_manage.py

我在 django_blog/urls.py 中有以下内容:


from django.contrib import admin

from django.contrib.auth import views as auth_views

from django.urls import path, include

from users import views as user_views


urlpatterns = [

    path('admin/', admin.site.urls),

    path('',include('blog.urls')),

    path('profile/',user_views.profile,name='profile'),

    path('register/',user_views.register,name='register'),

    path('login/',auth_views.LoginView.as_view(template_name='users/login.html'),name='login'),

    path('logout/',auth_views.LogoutView.as_view(template_name='users/logout.html'),name='logout'),

]

我在 users/views.py 中有以下装饰视图:


from django.contrib.auth.decorators import login_required


@login_required

def profile(request):

    return render(request,'users/profile.html')

以及 django_blog/settings.py 中的以下常量:


LOGIN_REDIRECT_URL = 'blog-home'


LOGIN_URL = 'login'

现在,如果用户未登录并尝试访问/profile/URL,他将被重定向到登录页面,并将next=/profile/参数传递给 URL。用户登录后,它将用户重定向到/profile/. 但我希望用户被重定向到主页,而不是从/login/URL 登录的默认行为。我应该如何实现该功能?


慕尼黑的夜晚无繁华
浏览 108回答 1
1回答

吃鸡游戏

将redirect_field_name参数设置为None:@login_required(redirect_field_name=None)def profile(request):    return render(request,'users/profile.html')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python