Fixed #1745 -- Accessing many-to-many relationships without a PK value now throws an exception. Thanks, Luke
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2817 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
aba95b718c
commit
69d6bd7af3
|
@ -239,8 +239,9 @@ def create_many_related_manager(superclass):
|
||||||
self.join_table = join_table
|
self.join_table = join_table
|
||||||
self.source_col_name = source_col_name
|
self.source_col_name = source_col_name
|
||||||
self.target_col_name = target_col_name
|
self.target_col_name = target_col_name
|
||||||
if instance:
|
|
||||||
self._pk_val = self.instance._get_pk_val()
|
self._pk_val = self.instance._get_pk_val()
|
||||||
|
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)
|
||||||
|
|
||||||
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))
|
||||||
|
|
|
@ -110,8 +110,8 @@ API_TESTS = """
|
||||||
>>> a2.delete()
|
>>> a2.delete()
|
||||||
>>> Article.objects.all()
|
>>> Article.objects.all()
|
||||||
[Django lets you build Web apps easily]
|
[Django lets you build Web apps easily]
|
||||||
>>> p1.article_set.all()
|
>>> p2.article_set.all()
|
||||||
[Django lets you build Web apps easily]
|
[]
|
||||||
|
|
||||||
# Adding via the 'other' end of an m2m
|
# Adding via the 'other' end of an m2m
|
||||||
>>> a4 = Article(headline='NASA finds intelligent life on Earth')
|
>>> a4 = Article(headline='NASA finds intelligent life on Earth')
|
||||||
|
|
Loading…
Reference in New Issue