После входа в систему возникает ошибка 'Anonymous User' object has no attribute '_meta'

Я новичок в Django я создаю форму регистрации если отправить форму данные сохраняются успешно полностью но у меня ошибка при перенаправлении или логине view.py

from Blog.forms import SignupForm
from django.contrib.auth import authenticate,login
from django.http import HttpResponseRedirect
def signup_form(request): 
    form=SignupForm() 
    if request.method=='POST': 
       form=SignupForm(request.POST) 
       if form.is_valid():
         user=form.save() 
         user.refresh_from_db()  
        # load the profile instance created by the signal
         user.save()
         raw_password = form.cleaned_data.get('password')
         user = authenticate(username=user.username, password=raw_password)
         login(request, user) 
         return HttpResponseRedirect('home/')
return render(request,'blog/signup.html',{'form':form})

перенаправление в файле настроек setting.py

LOGIN_REDIRECT='home/'
LOGOUT_REDIRECT_URL='/logout'

мой файл формы выглядит следующим образом forms.py

from django.contrib.auth.models import User
class SignupForm(ModelForm):
    class Meta:
        model=User
        fields=['username','first_name','last_name','email','password']
        labels={'username':' Enter User Name','password':' Enter Password','email':'Enter Email','first_name':'Enter First Name','last_name':'Enter Last Name'}
        widgets={'password':forms.PasswordInput,'username':forms.TextInput(attrs={'class':'form-control','placeholder':'Enter Your User Name'}),
        'password':forms.PasswordInput(attrs={'class':'form-control','placeholder':'Enter Your Password'}),
        'email':forms.EmailInput(attrs={'class':'form-control','placeholder':'Enter Your Email'}),
        'first_name':forms.TextInput(attrs={'class':'form-control','placeholder':'Enter First Name'}),
        'last_name':forms.TextInput(attrs={'class':'form-control','placeholder':'Enter Last Name'})
        }

urls.py

path('signup/',views.signup_form,name='signup/'), 

У объекта "Анонимный пользователь" нет атрибута '_meta'

Вы можете сделать следующее:

from django.contrib.auth.decorators import login_required

@login_required
def signup_form(request): 
    form=SignupForm() 
    if request.method=='POST': 
       form=SignupForm(request.POST) 
       if form.is_valid():
         user=form.save() 
         user.refresh_from_db()  
        # load the profile instance created by the signal
         user.save()
         raw_password = form.cleaned_data.get('password')
         user = authenticate(username=user.username, password=raw_password)
         login(request, user) 
         return HttpResponseRedirect('home/')
     else:
         return render(request,'blog/signup.html',{'form':form})

Это предотвратит появление AnnonymousUser. Если возникнет какая-либо ошибка, дайте мне знать, указав точную ошибку в комментарии.

Вернуться на верх