[CentralOH] (Django) ValueError: 'Book' instance needs to have a primary key value before a many-to-many relationship can be used.

Kurtis Mullins kurtis.mullins at gmail.com
Wed Oct 24 17:11:28 CEST 2012

Sorry, I should have been more clear. I believe you only need one save()
before you call add() on the m2m field. I don't think you need to call it
again afterwards.

And yeah, you can call save with commit=False to get an object instance but
I don't believe you will have a primary key until it's committed (saved).

I could be wrong though :) my brain has been all over the place coding-wise
On Oct 24, 2012 11:06 AM, <jep200404 at columbus.rr.com> wrote:

> On Wed, 24 Oct 2012 10:37:30 -0400, Kurtis Mullins <
> kurtis.mullins at gmail.com> wrote:
> > You should only need 1 save. The .add() doesn't require a save if memory
> > serves me correctly.
> I am dealing with a newly created object/row that does not yet
> have a primary key (id) until the first save.
> How were you getting a value for the primary key for the .add()
> to use? Were you using an object/row that already existed and so
> had already been saved earlier?
> On Wed, 24 Oct 2012 10:29:03 -0400, jep200404 at columbus.rr.com wrote:
> > by doing a .save() to flesh out the primary key value,
> > then doing the .add() for the ManyToManyField,
> > then doing another .save().
> I might have discovered a solution. I see something now that
> I did not see when I first looked at the code[1].
> Add commit=False to the first save.
> [1] busi = business.save(commit=False)
>     from the last answer of
> http://stackoverflow.com/questions/6090859/django-instance-needs-to-have-a-primary-key-value-before-a-many-to-many-relatio
> _______________________________________________
> CentralOH mailing list
> CentralOH at python.org
> http://mail.python.org/mailman/listinfo/centraloh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/centraloh/attachments/20121024/21b9a2d5/attachment.html>

More information about the CentralOH mailing list