Remaining Django 1.9 fixes.
[wolnelektury.git] / src / newtagging / models.py
index 9d12111..b90ea8e 100644 (file)
@@ -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)