On Fri, Feb 24, 2012 at 2:55 PM, richard <pullenjenn...@gmail.com> wrote:
> Hi Tom,
>
> Thanks for your reply. So for clarity i thought i was getting the
> userprofile to pass into the bound form so that the userprofile_id in
> the UserProfilePic would get populated/saved. as if i leave the
> instance as None
> then i get an error saying that userprofile_id cannot be empty?

Correct. So when you are creating a new UserProfilePic object, you
will need to populate those fields manually. I know of a couple of
techniques:

1) Do it manually:

frm = UserProfilePicForm(request.POST, instance=None)
if frm.is_valid():
  instance = frm.save(commit=False)
  instance.userprofile = user.get_profile()
  instance.save()

2) Pass the profile to the form's constructor, override the save
method and implement the same logic there:
class UserProfilePicForm(ModelForm):
  def __init__(self, *args, **kwargs):
    self.profile = kwargs.pop('profile')
  def save(self, commit=True, *args, **kwargs):
    instance = super(UserProfilePicForm, self).save(commit=False,
*args, **kwargs)
    instance.userprofile = self.profile
    if commit:
      instance.save()
    return instance
  class Meta:
    model = UserProfilePic
    fields = ('profilepic',)


>also,
> is a 1 to may relationship here correct for what i want to achieve?
>

Probably. You don't want multiple profiles linking to the same picture
do you? IE each picture has exactly one owner.

Cheers

Tom

-- 
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