如何将超级用户重定向到 Django 中的特定页面?
How to redirect superuser to specific page in Django?
我想在登录后将超级用户发送到仪表板(主页)。但是普通用户会重定向到商店页面,我该怎么做呢?
这是我在 views.py 文件中使用的逻辑,我需要做哪些更改?
views.py
@unauthenticated_user
def loginPage(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username = username, password = password)
if user is not None:
login(request, user)
return redirect('store')
else:
messages.info(request, 'Username OR Password is incorrect')
context = {}
return render(request, 'store/login.html', context)
urls.py
urlpatterns = [
path('register/', views.registerPage, name="register"),
path('login/', views.loginPage, name="login"),
path('logout/', views.logoutUser, name="logout"),
path('dashboard/', views.home, name='dashboard'),
path('products/', views.products, name='products'),
path('customer/<str:pk>/', views.customer, name='customer'),
path('profile/', views.profilePage, name="profile"),
path('cart/', views.cart, name='cart'),
path('checkout/', views.checkout, name='checkout'),
path('', views.store, name='store'),
path('update_item/', views.updateItem, name='update_item'),
path('process_order/', views.processOrder, name='process_order'),
]
检查此代码 ->
if user is not None:
login(request, user)
if user.is_superuser:
return redirect('dashboard')
else:
return redirect('store')
else:
messages.info(request, 'Username OR Password is incorrect')
您正在检查用户是否是超级用户 -> user.is_superuser
并且 returns 是,如果不是,则为 False。也许对你有帮助。
对于检查此代码的良好做法,我认为这样做更好 ->
if user is None:
message.info(request, 'Username OR password is incorrect')
login(request, user)
if user.is_superuser:
return (redirect('dashboard')
return redirect('store')
我想在登录后将超级用户发送到仪表板(主页)。但是普通用户会重定向到商店页面,我该怎么做呢?
这是我在 views.py 文件中使用的逻辑,我需要做哪些更改?
views.py
@unauthenticated_user
def loginPage(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username = username, password = password)
if user is not None:
login(request, user)
return redirect('store')
else:
messages.info(request, 'Username OR Password is incorrect')
context = {}
return render(request, 'store/login.html', context)
urls.py
urlpatterns = [
path('register/', views.registerPage, name="register"),
path('login/', views.loginPage, name="login"),
path('logout/', views.logoutUser, name="logout"),
path('dashboard/', views.home, name='dashboard'),
path('products/', views.products, name='products'),
path('customer/<str:pk>/', views.customer, name='customer'),
path('profile/', views.profilePage, name="profile"),
path('cart/', views.cart, name='cart'),
path('checkout/', views.checkout, name='checkout'),
path('', views.store, name='store'),
path('update_item/', views.updateItem, name='update_item'),
path('process_order/', views.processOrder, name='process_order'),
]
检查此代码 ->
if user is not None:
login(request, user)
if user.is_superuser:
return redirect('dashboard')
else:
return redirect('store')
else:
messages.info(request, 'Username OR Password is incorrect')
您正在检查用户是否是超级用户 -> user.is_superuser
并且 returns 是,如果不是,则为 False。也许对你有帮助。
对于检查此代码的良好做法,我认为这样做更好 ->
if user is None:
message.info(request, 'Username OR password is incorrect')
login(request, user)
if user.is_superuser:
return (redirect('dashboard')
return redirect('store')