From 80d0d8f5d3badcc712952d798b7f8cb11d65cd30 Mon Sep 17 00:00:00 2001 From: Bryan Brancotte <bryan.brancotte@pasteur.fr> Date: Thu, 31 Oct 2019 12:42:04 +0100 Subject: [PATCH] Fix duplication issue --- basetheme_bootstrap/user_preferences.py | 11 ++++++++++- setup.py | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/basetheme_bootstrap/user_preferences.py b/basetheme_bootstrap/user_preferences.py index 3d411dc..915e707 100644 --- a/basetheme_bootstrap/user_preferences.py +++ b/basetheme_bootstrap/user_preferences.py @@ -55,10 +55,19 @@ class UserPreferencesAbstractModel(models.Model): def get_for_user(cls, user): try: pref = cls.objects.get(user=user) + except cls.MultipleObjectsReturned: + for p in cls.objects.filter(user=None)[1:]: + p.delete() + pref = cls.objects.get(user=user) except TypeError: return cls.get_for_user(None) except cls.DoesNotExist: - pref, _ = cls.objects.get_or_create(user=None) + try: + pref, _ = cls.objects.get_or_create(user=None) + except cls.MultipleObjectsReturned: + for p in cls.objects.filter(user=None)[1:]: + p.delete() + pref, _ = cls.objects.get(user=None) if user is not None: pref.pk = None pref.id = None diff --git a/setup.py b/setup.py index a430b6c..619dd46 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ readme = open('README.rst').read() setup( name='django-basetheme-bootstrap', - version='0.2.26', + version='0.2.27', description='Django Basetheme Bootstrap', long_description=readme, author='Bryan Brancotte', -- GitLab