From c9aa3ce3a6729ec783e54fb0936cefe21f1e5168 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Tue, 14 Apr 2026 16:22:21 +0800 Subject: [PATCH] perf: settings refresh_item --- apps/settings/models.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/settings/models.py b/apps/settings/models.py index a30db92f2..e640357bc 100644 --- a/apps/settings/models.py +++ b/apps/settings/models.py @@ -6,7 +6,7 @@ from django.conf import settings from django.core.files.base import ContentFile from django.core.files.storage import default_storage from django.core.files.uploadedfile import InMemoryUploadedFile -from django.db import models, connections +from django.db import models, connections, transaction from django.db.utils import ProgrammingError, OperationalError from django.utils.translation import gettext_lazy as _ from rest_framework.utils.encoders import JSONEncoder @@ -86,7 +86,8 @@ class Setting(models.Model): @classmethod def refresh_item(cls, name): - item = cls.objects.filter(name=name).first() + with transaction.atomic(): + item = cls.objects.select_for_update().filter(name=name).first() if not item: return item.refresh_setting()