如何将 is_staff 用户重定向到 Django 中的自定义模板?

How to redirect is_staff user to custom template in Django?

我有一个简单的问题:我试图根据用户角色将登录页面重定向到另一个页面 (staff/normal)。普通用户有自己的仪表板,员工用户有整体仪表板。

普通用户的重定向功能运行良好。但是,对于员工用户,它一直将我重定向到 django-admin 页面而不是我的自定义模板。

我试过this,但还是不行。

views.py

#login
def login(request):
    if request.user.is_authenticated:
        if request.user.is_staff:
            return redirect('staff_dashboard')
        else:
            return redirect('user_dashboard')
    else:
        if request.method == "POST":
            username = request.POST.get("username")
            password = request.POST.get("password")

            user = auth.authenticate(request,username=username,password=password)

            if user is not None:
                if user.is_staff:
                    auth.login(request,user)
                    return redirect('staff_dashboard')
                else:
                    auth.login(request,user)
                    return redirect('user_dashboard')
            else:
                messages.info(request,"Username or Password is incorrect")
                return redirect('login')


#staff_dashboard
@login_required(login_url='login')
def staff_dashboard(request):
    vid_size = []
    img_query_set = model_images.objects.all()
    img_query_set_count = model_images.objects.all().count()
    vid_query_set = model_videos.objects.all()
    vid_query_set_count = model_videos.objects.all().count()
    
    for item in vid_query_set:
        size = round(item.vid_path.size / 1000000,1)
        vid_size.append(size)
    
    context = {
        "img_query_set": img_query_set,
        "vid_query_set": vid_query_set,
        "img_query_set_count": img_query_set_count,
        "vid_query_set_count": vid_query_set_count,
    }
    return render(request,'admin/index.html',context)

urls.py

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('', views.home, name='home'),
    path('login', views.login, name='login'),
    path('user/dashboard', views.user_dashboard, name='user_dashboard'),
    path('staff/dashboard', views.staff_dashboard, name='staff_dashboard'),
]

刚刚解决了。您不能在模板文件夹中创建名称为 'admin' 的文件。它将与 Django-admin 模板冲突。我重命名了文件,它现在可以正常工作了。