AttributeError at /login/ 'AnonymousUser' object has no attribute '_meta'

я пытаюсь создать свой собственный вид костюма для страницы входа в систему и получаю следующую ошибку.

вот мои взгляды:

    def my_view(request):
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
login(request, user)
return reverse_lazy('HomeView')

вот урлы:

urlpatterns = [
path('', HomeView.as_view(), name='HomeView'),
path('show_todo_list/<int:pk>', ShowToDoView.as_view(), name='Show_To_Do_list'),
path('create_task/', CreateTaskView.as_view(), name='Create_Task'),
path('change_task/<int:pk>', ChangeTaskView.as_view(), name= 'Change_Task'),
path('delete_task/<int:pk>', DeleteTaskView.as_view(), name= 'Delete_Task'),
path('login/', my_view, name='login')

]

и ошибка находится в строке 34: login(request, user) AttributeError: у объекта 'AnonymousUser' нет атрибута '_meta'

Вы должны выполнить код только в случае POST, а в случае GET вам нужно вернуть шаблон для входа пользователя.

def my_view(request):
   if request.method == "POST":
       username = request.POST.get('username')
       password = request.POST.get('password')
       user = authenticate(request, username=username, password=password)
       if user:
           login(request, user)
           return reverse_lazy('HomeView')
       return render(request,'login.html',{"invalid":True})
   else:
        return render(request,'login.html')
Вернуться на верх