Fixed #7026 -- Fixed misleading/incorrect exception text when adding to a many-to-many set on an object that doesn't yet have a primary-key value. Thanks for the report, ryan@peaceworks.ca
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7622 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
0fd41d63e2
commit
5309e18cbf
|
@ -351,7 +351,7 @@ def create_many_related_manager(superclass):
|
||||||
self.target_col_name = target_col_name
|
self.target_col_name = target_col_name
|
||||||
self._pk_val = self.instance._get_pk_val()
|
self._pk_val = self.instance._get_pk_val()
|
||||||
if self._pk_val is None:
|
if self._pk_val is None:
|
||||||
raise ValueError("%r instance needs to have a primary key value before a many-to-many relationship can be used." % model)
|
raise ValueError("%r instance needs to have a primary key value before a many-to-many relationship can be used." % instance.__class__.__name__)
|
||||||
|
|
||||||
def get_query_set(self):
|
def get_query_set(self):
|
||||||
return superclass.get_query_set(self).filter(**(self.core_filters))
|
return superclass.get_query_set(self).filter(**(self.core_filters))
|
||||||
|
|
|
@ -39,6 +39,14 @@ __test__ = {'API_TESTS':"""
|
||||||
|
|
||||||
# Create an Article.
|
# Create an Article.
|
||||||
>>> a1 = Article(id=None, headline='Django lets you build Web apps easily')
|
>>> a1 = Article(id=None, headline='Django lets you build Web apps easily')
|
||||||
|
|
||||||
|
# You can't associate it with a Publication until it's been saved.
|
||||||
|
>>> a1.publications.add(p1)
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
ValueError: 'Article' instance needs to have a primary key value before a many-to-many relationship can be used.
|
||||||
|
|
||||||
|
# Save it!
|
||||||
>>> a1.save()
|
>>> a1.save()
|
||||||
|
|
||||||
# Associate the Article with a Publication.
|
# Associate the Article with a Publication.
|
||||||
|
|
Loading…
Reference in New Issue