如何通过视图在路径中插入 django 用户的用户名?



我是一个天真的Django用户。我已经用Django用户模型实现了登录功能。这是我项目的urls.py文件:

from django.contrib import admin
from django.urls import path,include
from django.conf.urls import url
from signin import views as viewsignin
urlpatterns = [
path('',include('signin.urls')),
path('dashboard/',include('dashboard.urls')),
path('admin/', admin.site.urls),
]

这是我的仪表板应用程序的urls.py,它在用户登录后提供了仪表板视图的路径

from django.urls import path
from . import views
urlpatterns = [
path('dashboard/',views.dashboard,name='dashboard'),
]

以下是我的签名应用程序的views.py片段:

def signin(request):
message={}
if request.method=='POST':
user =authenticate(username=request.POST['email'],password=request.POST['pwd'])
print(user,request.POST['email'],request.POST['pwd'])
if user:
print("User exists")
if user.is_active:
login(request, user)
USER = User.objects.get(email=request.POST['email'])
return redirect('dashboard)#I HAVE A PROBLEM HERE
else:
message['cred_err']=True
return render(request,'signin/signin.html',context=message)

我想要的是,当登录成功时,仪表板的路径显示登录用户的用户名。请帮助!

您应该向dashboard视图添加一个参数:

urlpatterns = [
path('dashboard/<str:username>',views.dashboard,name='dashboard'),
]

然后您可以重定向到仪表板,用户名为:

def signin(request):
message = {}
if request.method == 'POST':
user = authenticate(username=request.POST['email'],password=request.POST['pwd'])
if user and user.is_active:
login(request, user)
return redirect('dashboard', username=user.username)
else:
message['cred_err'] = True
return render(request,'signin/signin.html',context=message)

最新更新