This occurs with recent SVN checkout.
(trimmed) example models:
class Tag(models.Model):
name = models.CharField(max_length=127, unique=True)
class Image(models.Model):
tags = models.ManyToManyField(Tag)
code which bombs:
t = Tag(name='foo')
t.save()
i = Image()
i.tags.add(t) #Bombs here because i doesn't have a pk
Traceback
File "reloadDB.py", line 73, in ?
i.tags.add(t)
File "/usr/lib/python2.4/site-packages/django/db/models/fields/related.py", line 485, in __get__
target_col_name=qn(self.field.m2m_reverse_name())
File "/usr/lib/python2.4/site-packages/django/db/models/fields/related.py", line 317, in __init__
raise ValueError("%r instance needs to have a primary key value before a many-to-many relationship can be used." % model)
ValueError: <class 'eTrain.models.Tag'> instance needs to have a primary key value before a many-to-many relationship can be used.
The error should indicate the <class 'eTrain.models.Image'> instance doesn't have pk... I'm not sure how to get at this as superclass doesn't seem to have the model attribute set.