On Mar 12, 3:11 pm, simong <sfgreenw...@gmail.com> wrote:
> I'm creating a profile form that includes first_name and last_name
> fields that write to the User model  and additional fields that write
> to my user profile model derived from Alex S's post 
> here:http://groups.google.com/group/django-users/msg/00e49ca16c63762c
>
> class UserProfileForm(forms.Form):
>         first_name = forms.CharField(max_length=128, required=False)
>         last_name = forms.CharField(max_length=128, required=False)
> # userprofile form
>         address1 = forms.CharField(widget=forms.TextInput(attrs={ 'size':
> '40' }), required=False)
>         address2 = forms.CharField(widget=forms.TextInput(attrs={ 'size':
> '40' }), required=False)
>         address3 = forms.CharField(widget=forms.TextInput(attrs={ 'size':
> '40' }), required=False)
>         towncity = forms.CharField(widget=forms.TextInput(attrs={ 'size':
> '40' }), required=False)
>         adminregion      = forms.CharField(widget=forms.TextInput(attrs={ 
> 'size':
> '40' }), required=False)
>         country = forms.CharField(max_length=128, required=False)
>         postcode = forms.CharField(max_length=10, required=False)
>         telno = forms.CharField(max_length=20, required=False)
>         email = forms.EmailField(required=False)
>
> I have implemented a save() method but haven't tested it yet.
>
> The urlpattern for this is:
>
> (r'^profiles/edit/$', 'profiles.views.edit_profile', { "form_class":
> UserProfileForm }, "profile_edit_profile")
>
> I can draw an instance of the form using django-profile's
> profile_edit_profile view but this is not currently populating the
> form with existing profile data. Following the django-profile docs, I
> have created an __init__ function for the form as follows:
>
>         def __init__(self, instance, *args, **kwargs):
>                 super(UserProfileForm, self).__init__(instance, *args, 
> **kwargs)
>                 self.instance = instance
>
> This returns a form because it creates an 'instance' keyword but
> doesn't populate it with data from profile_obj as called in views.py.
> Do I need to call profile_obj in my init function and how, or is it
> something else, or am I looking in the wrong direction. Document
> pointers are welcome as I can't find anything specific.
>

I'll answer myself: it is all in the docs, and after a bit more
reading a slightly more elegant solution is to create a ModelForm on
the UserProfile model, extend it by adding the required fields for the
User model and setting that form as the form_class. Now I'm a bit
stuck on passing the user object into the save() method but I'll have
it after a bit more head scratching. More detail when I can do that.

s/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to