我正在使用DJango 2.2.6
个人资料应用
EventToCommand
验证应用
app_name = 'myprofileapp'
urlpatterns = [
path('profile', accountController.as_view(), name='account')
]
以下是用于登录用户的代码。如果成功登录,则发送到个人资料页面。
app_name = 'authapp'
urlpatterns = [
path('login', loginController.as_view(), name='login')
]
在这段代码class loginController(View):
def post(self, request):
username = request.POST.get('username')
password = request.POST.get('password')
userobj = authenticate(username = username, password = password)
if(userobj == None):
return HttpResponse("Not Found")
else:
login(request, userobj)
return redirect('profile')
之后,如果我写了login(request, userobj)
,则该URL仍为登录名。
当我写return render(request, 'profile.html')
时说
未找到“配置文件”的反面。 “个人资料”不是有效的视图 函数或模式名称。
我想念什么吗?
答案 0 :(得分:1)
path('profile', accountController.as_view(), name='profile')
将name='account'
更改为name='profile'
答案 1 :(得分:1)
您还需要提及app_name
,并且由于您将视图命名为'account'
,因此请使用该名称:
class loginController(View):
def post(self, request):
username = request.POST.get('username')
password = request.POST.get('password')
userobj = authenticate(username = username, password = password)
if(userobj == None):
return HttpResponse("Not Found")
else:
login(request, userobj)
return redirect('myprofileapp:account')
答案 2 :(得分:1)
您必须在重定向时添加app_name。请像这样更改重定向参数
return redirect('myprofileapp:account')