Django - saving values ​​from a form to a database

I am creating a custom profile page, and I need the user to be able to save or update his profile. For some reason, I get the following error when I click the update profile button:

User matching request does not exist.

Below is the code for files, models, and views:

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 I'm not doing right? Thank!

+3
source share
1 answer
  f_user = User.objects.get(username=request.user.id)

Username assumed request.user.username

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

Actually, what am I talking about? You have your own custom object right here!

request.user:)

+6
source

Source: https://habr.com/ru/post/1793664/


All Articles