title: Django-taggit: add tags
body: <p>django-taggit==1.2.0</p>
  <pre><code>class Post(models.Model):
      tags = TaggableManager() # django-taggit
      ...
  
  
      def save(self, *args, **kwargs):
          super().save(*args, **kwargs)
          tag_slugs_list = strip_and_split(self.tags_aux)
          # tmp_tags = ', '.join('&quot;{}&quot;'.format(w) for w in tag_slugs_list)
          tmp_tags = Tag.objects.filter(slug__in=tag_slugs_list)
          self.tags.add(list(tmp_tags))
  </code></pre>
  <p><strong>Problem</strong></p>
  <pre><code>Environment:
  
  
  Request Method: POST
  Request URL: http://localhost:8000/admin/posts/post/1/change/
  
  Django Version: 3.0.8
  Python Version: 3.8.0
  Installed Applications:
  ['admin_aux',
   'images.apps.ImagesConfig',
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'django.contrib.sites',
   'django.contrib.sitemaps',
   'posts',
   'sidebars',
   'general',
   'categories',
   'marketing',
   'home',
   'authors',
   'taggit',
   'cachalot',
   'widgets',
   'code_samples',
   'hyper_links',
   'polls',
   'applications',
   'videos',
   'quotations',
   'languages',
   'people',
   'arbitrary_htmls.apps.ArbitraryHtmlsConfig',
   'tweets',
   'vk_posts',
   'facebook_posts',
   'instagram_posts',
   'email_subscriptions',
   'social_share',
   'assessments',
   'django_bootstrap_breadcrumbs',
   'promo']
  Installed Middleware:
  ['django.middleware.security.SecurityMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware',
   'django.middleware.clickjacking.XFrameOptionsMiddleware']
  
  
  
  Traceback (most recent call last):
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/core/handlers/exception.py&quot;, line 34, in inner
      response = get_response(request)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/core/handlers/base.py&quot;, line 115, in _get_response
      response = self.process_exception_by_middleware(e, request)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/core/handlers/base.py&quot;, line 113, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/contrib/admin/options.py&quot;, line 607, in wrapper
      return self.admin_site.admin_view(view)(*args, **kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/utils/decorators.py&quot;, line 130, in _wrapped_view
      response = view_func(request, *args, **kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/views/decorators/cache.py&quot;, line 44, in _wrapped_view_func
      response = view_func(request, *args, **kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/contrib/admin/sites.py&quot;, line 231, in inner
      return view(request, *args, **kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/contrib/admin/options.py&quot;, line 1641, in change_view
      return self.changeform_view(request, object_id, form_url, extra_context)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/utils/decorators.py&quot;, line 43, in _wrapper
      return bound_method(*args, **kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/utils/decorators.py&quot;, line 130, in _wrapped_view
      response = view_func(request, *args, **kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/contrib/admin/options.py&quot;, line 1522, in changeform_view
      return self._changeform_view(request, object_id, form_url, extra_context)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/contrib/admin/options.py&quot;, line 1565, in _changeform_view
      self.save_model(request, new_object, form, not add)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/django/contrib/admin/options.py&quot;, line 1081, in save_model
      obj.save()
    File &quot;/home/michael/PycharmProjects/pcask/pcask/posts/models.py&quot;, line 65, in save
      self.tags.add(list(tmp_tags))
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/taggit/utils.py&quot;, line 124, in inner
      return func(self, *args, **kwargs)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/taggit/managers.py&quot;, line 130, in add
      tag_objs = self._to_tag_model_instances(tags)
    File &quot;/home/michael/PycharmProjects/pcask/venv/lib/python3.8/site-packages/taggit/managers.py&quot;, line 184, in _to_tag_model_instances
      raise ValueError(
  
  Exception Type: ValueError at /admin/posts/post/1/change/
  Exception Value: Cannot add [&lt;Tag: Linux&gt;, &lt;Tag: OS&gt;] (&lt;class 'list'&gt;). Expected &lt;class 'django.db.models.base.ModelBase'&gt; or str.
  </code></pre>
  <p>How can I cope with this?</p>