¿Cómo actualizar el objeto Usuario sin crear uno nuevo?

Siguiendo funciona bien en shell:

>>> from django.contrib.auth.models import User
>>> user=User.objects.get(pk=1)
>>> user.first_name = u'Some'
>>> user.last_name = u'Name'
>>> user.save()
>>> user.first_name
u'Some'
>>> user.last_name
u'Name'

Luego trato de hacer lo mismo con los formularios:

# forms.py
class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['first_name', 'last_name']


# views.py
def edit_names(request, template_name="registration/edit_names.html"):
    if request.method == "POST":
        form = UserForm(data=request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.save()
            url = urlresolvers.reverse('my_account')
            return HttpResponseRedirect(url)
    else:
        form = UserForm(instance=request.user)
    page_title = _('Edit user names')
    return render_to_response(template_name, locals(),
        context_instance=RequestContext(request))

# edit_names.html
<form action="." method="post">{% csrf_token %}
    <table>
        {{ form.as_table }}
        <tr><td colspan="2">
            <input type="submit" />
        </td></tr>
    </table>
</form>

Abro la página en el navegador y veo dos camposFirst name yLast name. Cuando completo los campos y envío el formulario, aparece el error:

 Exception Type:    IntegrityError
Exception Value:    column username is not unique

También intenté agregar['username'] a la lista de campos en UserForm. Si envío el formulario con mi nombre de usuario (como request.user), el formulario muestra un mensaje de error:

User with this Username already exists.

Si cambio el nombre de usuario a un nombre único, se está creando el nuevo usuario con ese nombre de usuario.

La pregunta es: ¿Cómo puedo actualizar el objeto Usuario, no crear uno nuevo?

o siento por ser tan detallado, pero tuve que buscar mucho aquí y no pude encontrar la respuesta a mi pregunta.

BTW, estos casos no funcionan para mí:

Extender UserCreationForm para incluir correo electrónico, nombre y apellidoadd campo first_name y last_name en django-profile ¿Cómo crear un formulario de Perfil de usuario en Django con modificaciones de nombre y apellido?

EDITAR

Como sugerí @fceruti, acabo de agregar en request.method == 'post' ramifica esto:

form = UserForm(data=request.POST, instance=request.user)

Respuestas a la pregunta(4)

Su respuesta a la pregunta