Hi Mario,
Thanks so much - I updated my view as below and it is now working as
expected!
Regards,
Leslie

if form.is_valid():
            new_item = form.save(commit=False)
            new_item.client = orderClient
            new_item.orderdate = datetime.now()
            new_item.orderIP = remote_ip
            new_item.status = "Not_Paid"
            new_item.save()
            form.save_m2m()
            ordernumber = new_item.pk

            for opt in request.POST.getlist('srvoptions'):
                theopt = srvoptions.objects.get(pk=opt)
                new_item.srvopts.add(theopt.id)

On Fri, Nov 25, 2011 at 1:40 AM, Mario Gudelj <mario.gud...@gmail.com>wrote:

> Hey Leslie,
>
> Try add() method like in this answer on SO
> http://stackoverflow.com/questions/1226290/django-manytomany-relation-add-error
>
> Cheers,
>
> On 25 November 2011 00:43, Nichehosters <lesl...@mygolf.za.net> wrote:
>
>> Hi,
>> I am relatively new to Django, and am trying to update a many-to-many
>> related table using a ModelForm.
>> I see fro the documentation that if I use save(commit=False) - which I
>> do - I need to use save_m2m() after saving the initial form.  I am
>> using the save_m2m(), but my related table does not get updated.
>> Any help appreciated.
>> I am using django V1.3.1 on linux using Postgresql as the db.
>>
>> Details:
>>
>> The Model:
>> class srvorders(models.Model):
>>    client = models.CharField('Client', max_length=200)
>>    server = models.CharField('Server Type', max_length=200)
>>    os = models.CharField('Operating System', max_length=200)
>>    osopts = models.CharField('Operating System Options',
>> max_length=200, blank=True, null=True)
>>    ordertotal = models.IntegerField()
>>    notes = models.TextField('Notes', blank=True, null=True)
>>    orderdate = models.DateTimeField()
>>    orderIP = models.IPAddressField()
>>    status = models.CharField('Order Status', max_length="20")
>>    srvopts = models.ManyToManyField(srvoptions, blank=True,
>> null=True)
>>
>> class Meta:
>>    ordering = ["id"]
>>    verbose_name_plural = "Server Orders"
>>
>> def __unicode__(self):
>>    return str(self.id)
>>
>> class Admin:
>>    pass
>>
>> The ModelForm:
>> class NewOrderForm(forms.ModelForm):
>>    Server_CHOICES = [('', '-- choose a Server --'), ] + [(s.id,
>> s.name) for s in products.objects.all()]
>>    OS_CHOICES = [('', '-- choose a Server --'), ] +[(o.id, o.name)
>> for o in OS.objects.all()]
>>    OPTION_CHOICES = [('', '-- choose a Server --'), ] +[(opt.id,
>> opt.name) for opt in osoptions.objects.all()]
>>
>> server=forms.ChoiceField(choices=Server_CHOICES)
>> os = forms.ChoiceField(choices=OS_CHOICES)
>> osopts=forms.ChoiceField(choices=OPTION_CHOICES, required=False)
>> ordertotal=forms.CharField(required=False)
>> notes=forms.CharField(required=False)
>>
>> class Meta:
>>    model= srvorders
>>    exclude = ('client', 'orderdate', 'orderIP', 'status')
>>
>> The View snippet:
>> if request.method == 'POST':
>>        form = NewOrderForm(request.POST)
>>        if form.is_valid():
>>            new_item = form.save(commit=False)
>>            new_item.client = orderClient
>>            new_item.orderdate = datetime.now()
>>            new_item.orderIP = remote_ip
>>            new_item.status = "Not_Paid"
>>            new_item.save()
>>            form.save_m2m()
>>
>> Regards,
>> Leslie
>>
>> --
>> 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.
>>
>>
>  --
> 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.
>



-- 
Regards,
MyGolf
http://www.mygolf.za.net

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