Проблема при перенаправлении с одной страницы на другую - PullRequest
2 голосов
/ 10 ноября 2019

Я использую DJango 2.2.6

Профиль приложения

app_name = 'myprofileapp'

urlpatterns = [
    path('profile', accountController.as_view(), name='account')
]

Auth App

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), если я пишу return render(request, 'profile.html'), тогда URL остается логином.

и когда я пишу return redirect('profile'), он говорит

Обратное для «профиля» не найдено. 'profile' не является допустимой функцией просмотра или именем шаблона.

Я что-то пропустил?

Ответы [ 3 ]

1 голос
/ 10 ноября 2019

Вам также необходимо упомянуть 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('<b>myprofileapp:account'</b>)
1 голос
/ 10 ноября 2019

Вы должны добавить app_name при перенаправлении. Пожалуйста, измените параметр перенаправления следующим образом

return redirect('myprofileapp:account') 
1 голос
/ 10 ноября 2019
path('profile', accountController.as_view(), name='profile')

изменить name='account' на name='profile'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...