django-taggit
django-taggit copied to clipboard
Multiple TaggableManager in single model resulting in Cannot resolve keyword u'None' into field.
Note : Currently using 0.11.1 as 0.11.2 does not support multiple TaggableManager objects in the same model.
environment
$ python --version
Python 2.6.6
$ pip freeze
Django==1.6.1
django-taggit==0.11.1
models.py
from django.db import models
from taggit.managers import TaggableManager
from taggit.models import GenericTaggedItemBase, TagBase
class SecondTag(TagBase):
pass
class SecondTaggedItem(GenericTaggedItemBase):
tag = models.ForeignKey(SecondTag)
class MyModel(models.Model):
first_tag = TaggableManager()
second_tag = TaggableManager(through=SecondTaggedItem)
Create an save a new MyModel object, then attempt to iterate through second_tag.
>>> a = MyModel()
>>> a.first_tag = 'one,two'
>>> a.second_tag = 'three,four'
>>> a.save()
>>> q = MyModel.objects.get(pk=1)
>>> for f in q.second_tag.iterator(): f
...
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/manager.py", line 181, in iterator
return self.get_queryset().iterator(*args, **kwargs)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/taggit/managers.py", line 335, in get_query_set
return self.through.tags_for(self.model, self.instance)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/taggit/models.py", line 153, in tags_for
return cls.tag_model().objects.filter(**kwargs).distinct()
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/manager.py", line 163, in filter
return self.get_queryset().filter(*args, **kwargs)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/query.py", line 590, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/query.py", line 608, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1198, in add_q
clause = self._add_q(where_part, used_aliases)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1232, in _add_q
current_negated=current_negated)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1100, in build_filter
allow_explicit_fk=True)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1351, in setup_joins
names, opts, allow_many, allow_explicit_fk)
File "/home/jesse/code/blah/ve/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1274, in names_to_path
"Choices are: %s" % (name, ", ".join(available)))
FieldError: Cannot resolve keyword u'None' into field. Choices are: id, mymodel, name, secondtaggeditem, slug