avatar
avatar

Reputation: 12505

django - saving values from a form to database

I'm creating a custom profile page and I need the user to be able to save or update his profile. For some reason I'm getting the following error when I hit the update profile button:

User matching query does not exist.

Below is the code I have for the forms, models and views files:

forms.py

class ProfileForm(forms.Form):
    profile_name = forms.CharField( max_length=50)

models.py

class UserProfile(models.Model):
    user = models.ForeignKey(User)
    profile_name = models.CharField(blank=True, max_length=50)

    def __unicode__(self):
        return u'%s %s' % (self.user, self.profile_name)

views.py

def edit_profile(request):

    if 'edit_button' in request.POST:
             form = ProfileForm(request.POST)
             f_user = User.objects.get(username=request.user.id)
             f_profile_name = form.cleaned_data['profile_name']
             p = UserProfile(user=f_user, profile_name=f_profile_name)
             p.save()
    else:
            form = ProfileForm()
    return render_to_response('userprofile_template.html', locals(), context_instance=RequestContext(request))

Any idea what am I not doing right? Thank You!

Upvotes: 3

Views: 4958

Answers (1)

  f_user = User.objects.get(username=request.user.id)

Username is presumabely request.user.username

Or, just user User.objects.get(id=request.user.id)

Actually what is my caffienated ass saying? You have your user object right there!

request.user : )

Upvotes: 6

Related Questions