diff --git a/taggit/managers.py b/taggit/managers.py index 2464640a..a54bf1dc 100644 --- a/taggit/managers.py +++ b/taggit/managers.py @@ -204,7 +204,9 @@ def _to_tag_model_instances(self, tags, tag_kwargs): tag_objs = set() for t in tags: - if isinstance(t, self.through.tag_model()): + if hasattr(t, "first") and isinstance(t.first(), self.through.tag_model()): + tag_objs.add(t.first()) + elif isinstance(t, self.through.tag_model()): tag_objs.add(t) elif isinstance(t, str): str_tags.add(t)