Django, обновление профиля пользователя с помощью ModelForm

Я пытаюсь отобразить простой ModelForm для профиля пользователя и разрешить пользователю его обновлять. Проблема здесь в том, что моя логика как-то испорчена, и после успешного вызова form.save () старые значения отображаются на странице. Пока не будет показано, что отображается соответствующее значение. Что здесь не так?

@login_required def user_profile(request): success = False user = User.objects.get(pk=request.user.id) upform = UserProfileForm(instance=user.get_profile()) if request.method == 'POST': userprofile = UserProfileForm(request.POST, instance=user.get_profile()) if userprofile.is_valid(): up = userprofile.save(commit=False) up.user = request.user up.save() success = True return render_to_response('profile/index.html', locals(), context_instance=RequestContext(request)) 

Я просто хочу обновить существующий профиль, а не добавлять новый.

2 Solutions collect form web for “Django, обновление профиля пользователя с помощью ModelForm”

Попробуй это:

 @login_required def user_profile(request): success = False user = User.objects.get(pk=request.user.id) if request.method == 'POST': upform = UserProfileForm(request.POST, instance=user.get_profile()) if upform.is_valid(): up = upform.save(commit=False) up.user = request.user up.save() success = True else: upform = UserProfileForm(instance=user.get_profile()) return render_to_response('profile/index.html', locals(), context_instance=RequestContext(request)) 

Вы также можете использовать общий вид :

 from django.views.generic.create_update import update_object @login_required def user_profile(request): return update_object(request, form_class=UserProfileForm, object_id=request.user.get_profile().id, template_name='profile/index.html') 
  • Как отключить модули администрирования Django Celery?
  • Сортировка связанных элементов в шаблоне Django
  • django-admin.py startproject не работает
  • Как разрешить пользователям изменять свои собственные пароли в Django?
  • упорядочение с использованием синтаксиса SQL CASE WHEN / THEN django
  • Django substr / substring в шаблонах
  • Как настроить APScheduler в проекте Django?
  • SSH в оболочку Django
  • Вложенные ресурсы в Django REST Framework
  • Отладка Django с помощью Emacs
  • Не удается заставить Django обслуживать статические файлы
  • Python - лучший язык программирования в мире.