I wasn't using ProfileForm(instance = userProfile) because I didn't
realize I could. Wow, that makes things easier and neater.

Thanks so much.

On Mar 25, 11:57 am, Nuno Maltez <nuno.li...@gmail.com> wrote:
> >On Thu, Mar 25, 2010 at 2:00 AM, mjlissner <mjliss...@gmail.com> wrote:
> > I'll make things more concrete. I have the following in my model
> > (which is made into a ModelForm):
> > class UserProfile(models.Model):
> >    barmembership = models.ManyToManyField(BarMembership,
> >        verbose_name="the bar memberships held by the user",
> >        blank=True,
> >        null=True)
>
> > In my view, I have some code that looks like this:
> >        userProfile = request.user.get_profile()
> >        bar_memberships = userProfile.barmembership.all()
>
> >        profileForm = ProfileForm(
> >        initial = {'barmembership' : [bar_memberships]})
>
> I don't know why you're not using the "instance" argument to populate the form
>
> profileForm = ProfileForm(instance=userProfile)
>
> but you need to give the ModelForm a list of PKs for the many-to-many-field:
>
> bar_memberships = [obj.pk for obj in ob.barmembership.all()]
> profileForm = ProfileForm( initial = {'barmembership' : bar_memberships})
>
> (see the model_to_dict code in django/forms/models.py )
>
> And force the refresh on the browser if it looks like it's not working
> :) (at least FF has a strange
> habit of keeping selections when reloading a form, ignoring the
> initial selected items on the HTML).
>
> hth,
> Nuno

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@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