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