I'm trying to setup a User - UserProfile relationship, display the form and save the data.
When submitted, the data is saved, except the password field doesn't get hashed. 
Additionally, how can I remove the help_text from the username and password (inherited from the User model)?
Full code is below, excuse me if it's too long.
Models.py
USER_IS_CHOICES = (
('u', 'Choice A'),
('p', 'Choice B'),
('n', 'Ninja'),
)
class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    user_is = models.CharField(max_length=1, choices=USER_IS_CHOICES)
Forms.py
class UserForm(forms.ModelForm):
class Meta:
    model = User
    fields = ["first_name", "last_name", "username",  "email", "password"]
def clean_username(self):
    username = self.cleaned_data['username']
    if not re.search(r'^\w+$', username):
        raise forms.ValidationError('Username can contain only alphanumeric characters')
    try:
        User.objects.get(username=username)
    except ObjectDoesNotExist:
        return username
    raise forms.ValidationError('Username is already taken')
class UserProfileForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = ['user_is']
Views.py
if request.method == 'POST':
    uform = UserForm(request.POST)
    pform = UserProfileForm(request.POST)
    if uform.is_valid() and pform.is_valid():
        user = uform.save()
        profile = pform.save(commit = False)
        profile.user = user
        profile.save()
        return HttpResponseRedirect('/')
else:
    uform = UserForm()
    pform = UserProfileForm()
variables = RequestContext(request, {
    'uform':uform,
    'pform':pform
})
return render_to_response('registration/register.html', variables)