Django "Manager isn't accessible via UserProfile instances"

Viewed 2891

Here is my views.py

if request.user.is_authenticated():
                changepass = request.user.userprofile.objects.get(user=request.user)
                if changepass.force_password_change == True:
                    changepass.force_password_change = False
                    changepass.save()
                    return HttpResponseRedirect('/login/register/')
                elif changepass.force_password_change == False:
                    return HttpResponseRedirect('/main/')

This line changepass = request.user.userprofile.objects.get(user=request.user) is the problem according to Django. I am trying to access force_password_change from UserProfile. As the title suggests, I am getting the error Manager isn't accessible via UserProfile instances.

Here is my models.py for reference.

class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    force_password_change = models.BooleanField(default=True)

    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            UserProfile.objects.create(user=instance)

    post_save.connect(create_user_profile, sender=User)
3 Answers
Related