From a8f9583f7f1e7e3c73ba9dcce3362d57bd667753 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 24 Dec 2024 21:58:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0safe=5Fget=5For=5Fcre?= =?UTF-8?q?ate=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/utils/models.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/utils/models.py b/apps/utils/models.py index a1afd64c..efacf5a1 100755 --- a/apps/utils/models.py +++ b/apps/utils/models.py @@ -111,6 +111,14 @@ class BaseModel(models.Model): class Meta: abstract = True + @classmethod + def safe_get_or_create(cls, **kwargs): + defaults = kwargs.pop('defaults', {}) + try: + return cls.objects.get_or_create(defaults=defaults, **kwargs) + except IntegrityError: + return cls.objects.get(**kwargs), False + def handle_parent(self): pass