From b4cd8169de604943f8aaee3666282c95e650e5f4 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 6 Sep 2013 17:13:51 -0500 Subject: Fixed #11811 -- Data-loss bug in queryset.update. It's now forbidden to call queryset.update(field=instance) when instance hasn't been saved to the database ie. instance.pk is None. --- django/db/models/base.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'django') diff --git a/django/db/models/base.py b/django/db/models/base.py index 2ca6f3ecc2..a9d8695f21 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -768,6 +768,8 @@ class Model(six.with_metaclass(ModelBase)): return getattr(self, cachename) def prepare_database_save(self, unused): + if self.pk is None: + raise ValueError("Unsaved model instance %r cannot be used in an ORM query." % self) return self.pk def clean(self): -- cgit v1.3