Make django community auth plugin only save changed fields
authorMagnus Hagander <magnus@hagander.net>
Fri, 7 Aug 2020 12:41:50 +0000 (14:41 +0200)
committerMagnus Hagander <magnus@hagander.net>
Tue, 11 Aug 2020 09:33:46 +0000 (11:33 +0200)
tools/communityauth/sample/django/auth.py

index 96221a3cd88d6e04436c9c84aae03818dab7a933..9d321b66d73ca10d6e3b0d09b02a7bda245fb38d 100644 (file)
@@ -109,18 +109,18 @@ def auth_receive(request):
     try:
         user = User.objects.get(username=data['u'][0])
         # User found, let's see if any important fields have changed
-        changed = False
+        changed = []
         if user.first_name != data['f'][0]:
             user.first_name = data['f'][0]
-            changed = True
+            changed.append('first_name')
         if user.last_name != data['l'][0]:
             user.last_name = data['l'][0]
-            changed = True
+            changed.append('last_name')
         if user.email != data['e'][0]:
             user.email = data['e'][0]
-            changed = True
+            changed.append('email')
         if changed:
-            user.save()
+            user.save(update_fields=changed)
     except User.DoesNotExist:
         # User not found, create it!