Index: django/db/models/base.py
===================================================================
--- django/db/models/base.py	(revision 5047)
+++ django/db/models/base.py	(working copy)
@@ -198,10 +203,12 @@
 
     _prepare = classmethod(_prepare)
 
-    def save(self):
+    def save(self, save_fields=None):
         dispatcher.send(signal=signals.pre_save, sender=self.__class__, instance=self)
 
         non_pks = [f for f in self._meta.fields if not f.primary_key]
+        if save_fields:
+            non_pks = [f for f in non_pks if f.name in save_fields]
         cursor = connection.cursor()
 
         # First, try an UPDATE. If that doesn't update anything, do an INSERT.
