Skip to content Skip to sidebar Skip to footer

'anonymoususer' Object Has No Attribute '_meta'

views.py code from django.shortcuts import render,redirect from django.http import HttpResponse from django.contrib.auth.forms import UserCreationForm from tutorial import views fr

Solution 1:

It's better to use login_required decorator. It will check whether user logged in or not without coding it explicitly.

from django.contrib.auth.decorators import login_required

@login_requireddefedit_profile(request):

     if request.method=="POST":
        form = EditProfileForm(request.POST,instance=request.user)
        if form.is_valid():
            form.save()
            return redirect('/account/profile')
     else:
        form  =  EditProfileForm(instance=request.user)
     args = {'form' : form}
     return render(request,'accounts/edit_profile.html',args)

Solution 2:

You are not logged in and trying to modify profile. To prevent such kind of error, add is_authenticated validation to your view. If user is not authenticated, you can redirect him to login page with redirect shortcut function:

def edit_profile(request):
  if request.user.is_authenticated:  
     if request.method=="POST":
        form = EditProfileForm(request.POST,instance=request.user)
        if form.is_valid():
            form.save()
            return redirect('/account/profile')
     else:
        form  =  EditProfileForm(instance=request.user)
        args = {'form' : form}
        return render(request,'accounts/edit_profile.html',args) 
  else:
     return redirect('/login/') 

Post a Comment for "'anonymoususer' Object Has No Attribute '_meta'"