从一页重定向到另一页时出现问题

时间:2019-11-10 15:05:26

标签: django

我正在使用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')时说

  

未找到“配置文件”的反面。 “个人资料”不是有效的视图   函数或模式名称。

我想念什么吗?

3 个答案:

答案 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')