Only update actually changed fields in most places
authorMagnus Hagander <magnus@hagander.net>
Sat, 11 Jul 2020 16:35:27 +0000 (18:35 +0200)
committerMagnus Hagander <magnus@hagander.net>
Sat, 11 Jul 2020 16:35:27 +0000 (18:35 +0200)
hamnadmin/hamnadmin/register/management/commands/aggregate_feeds.py
hamnadmin/hamnadmin/register/models.py
hamnadmin/hamnadmin/register/views.py
hamnadmin/hamnadmin/util/aggregate.py

index 4bac98f6e6b6b72654779626c0448c7a5b1090c7..c58b5e8b5c27e42cefc0d620b82d4ff0e6a62af0 100644 (file)
@@ -88,7 +88,7 @@ class Command(BaseCommand):
                                 receivername="Planet PostgreSQL Moderators",
                             )
                             feed.feedurl = results.url
-                            feed.save()
+                            feed.save(update_fields=['feedurl'])
                         else:
                             AggregatorLog(feed=feed, success=False,
                                           info="Feed returned redirect (http 301)").save()
@@ -209,7 +209,7 @@ class Command(BaseCommand):
                                 receivername="{0} {1}".format(feed.user.first_name, feed.user.last_name),
                             )
                             feed.blogurl = feed.new_blogurl
-                            feed.save()
+                            feed.save(update_fields=['blogurl'])
                 if self.debug:
                     # Roll back transaction without error
                     raise BreakoutException()
index 00b28572a32c90c548625e4906f3581960186840..95cf1fe3a65abad9f0bb49ff13f69a02d1c7009c 100644 (file)
@@ -102,7 +102,7 @@ class Post(models.Model):
 
     def update_shortlink(self):
         self.shortlink = self._get_shortlink()
-        self.save()
+        self.save(update_fields=['shortlink'])
 
     def _get_shortlink(self):
         s = ""
index d4012ab668db4c89c739fbe81837ee4612febd85..2c805d96ed5ee7d6d3f82df630c23b67fcaa3682 100644 (file)
@@ -82,7 +82,7 @@ def edit(request, id=None):
                     if saved_url != form.cleaned_data['feedurl'] or saved_filter != form.cleaned_data['authorfilter']:
                         obj = form.save()
                         obj.approved = False
-                        obj.save()
+                        obj.save(update_fields=['approved'])
 
                         send_simple_mail(
                             settings.EMAIL_SENDER,
@@ -170,7 +170,7 @@ def archive(request, id):
         receivername="Planet PostgreSQL Moderators",
     )
     blog.archived = True
-    blog.save()
+    blog.save(update_fields=['archived'])
     messages.info(request, "Blog archived.")
     return HttpResponseRedirect("/register/")
 
@@ -188,7 +188,7 @@ def remove_from_team(request, teamid, blogid):
         return HttpResponseRedirect("/register/")
 
     blog.team = None
-    blog.save()
+    blog.save(update_fields=['team'])
 
     send_simple_mail(settings.EMAIL_SENDER,
                      settings.NOTIFICATION_RECEIVER,
@@ -224,7 +224,7 @@ def __getvalidblogpost(request, blogid, postid):
 def __setposthide(request, blogid, postid, status):
     post = __getvalidblogpost(request, blogid, postid)
     post.hidden = status
-    post.save()
+    post.save(update_fields=['hidden'])
     AuditEntry(request.user.username, 'Set post %s on blog %s visibility to %s' % (postid, blogid, status)).save()
     messages.info(request, 'Set post "%s" to %s' % (post.title, status and "hidden" or "visible"), extra_tags="top")
     purge_root_and_feeds()
@@ -252,7 +252,7 @@ def blogpost_delete(request, blogid, postid):
     # Update the feed last fetched date to be just before this entry, so that we end up
     # re-fetching it if necessary.
     post.feed.lastget = post.dat - datetime.timedelta(minutes=1)
-    post.feed.save()
+    post.feed.save(update_fields=['lastget'])
 
     # Now actually delete it
     post.delete()
@@ -344,7 +344,7 @@ def moderate_approve(request, blogid):
     )
 
     blog.approved = True
-    blog.save()
+    blog.save(update_fields=['approved'])
 
     AuditEntry(request.user.username, 'Approved blog %s at %s' % (blog.id, blog.feedurl)).save()
 
index bb499eb144fd72fe92e20b5b4bc2fdc3c2f509f9..f58469453c3318d7d2a4426bc61497a3f6734653 100644 (file)
@@ -127,13 +127,13 @@ class FeedFetcher(object):
 
             if self.update:
                 self.feed.lastget = d
-                self.feed.save()
+                self.feed.save(update_fields=['lastget'])
         else:
             # We didn't get a Last-Modified time, so set it to the entry date
             # for the latest entry in this feed.
             if self.newest_entry_date and self.update:
                 self.feed.lastget = self.newest_entry_date
-                self.feed.save()
+                self.feed.save(update_fields=['lastget'])
 
     def matches_filter(self, entry):
         # For now, we only match against self.feed.authorfilter. In the future,