X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/141f3bea77fdb337069c198ffeee870696f4554e..0def7bcb965d56cfa88c7e5a1676905b02f84ab6:/src/newtagging/models.py

diff --git a/src/newtagging/models.py b/src/newtagging/models.py
index 9d12111d2..b90ea8e83 100644
--- a/src/newtagging/models.py
+++ b/src/newtagging/models.py
@@ -64,7 +64,10 @@ class TagManager(models.Manager):
         # Add new tags
         tags_to_add = [tag for tag in updated_tags if tag not in current_tags]
         for tag in tags_to_add:
-            self.intermediary_table_model.objects.create(tag=tag, content_object=obj)
+            existing = self.intermediary_table_model.objects.filter(
+                content_type__pk=content_type.pk, object_id=obj.pk, tag=tag)
+            if not existing:
+                self.intermediary_table_model.objects.create(tag=tag, content_object=obj)
 
         tags_updated.send(sender=type(obj), instance=obj, affected_tags=tags_to_add + tags_for_removal)