django_polymorphic icon indicating copy to clipboard operation
django_polymorphic copied to clipboard

ContentType matching query does not exist. Lookup parameters were {'pk': None}

Open taxido opened this issue 12 years ago • 1 comments

In [1]: Item.objects.all()
Out[1]: ---------------------------------------------------------------------------
DoesNotExist                              Traceback (most recent call last)
<ipython-input-1-f68cadf55917> in <module>()
----> 1 Item.objects.all()

/home/vagrant/env/local/lib/python2.7/site-packages/IPython/core/displayhook.pyc in __call__(self, result)
    236             self.start_displayhook()
    237             self.write_output_prompt()
--> 238             format_dict = self.compute_format_data(result)
    239             self.write_format_data(format_dict)
    240             self.update_user_ns(result)

/home/vagrant/env/local/lib/python2.7/site-packages/IPython/core/displayhook.pyc in compute_format_data(self, result)
    148             MIME type representation of the object.
    149         """
--> 150         return self.shell.display_formatter.format(result)
    151 
    152     def write_format_data(self, format_dict):

/home/vagrant/env/local/lib/python2.7/site-packages/IPython/core/formatters.pyc in format(self, obj, include, exclude)
    124                     continue
    125             try:
--> 126                 data = formatter(obj)
    127             except:
    128                 # FIXME: log the exception

/home/vagrant/env/local/lib/python2.7/site-packages/IPython/core/formatters.pyc in __call__(self, obj)
    445                 type_pprinters=self.type_printers,
    446                 deferred_pprinters=self.deferred_printers)
--> 447             printer.pretty(obj)
    448             printer.flush()
    449             return stream.getvalue()

/home/vagrant/env/local/lib/python2.7/site-packages/IPython/lib/pretty.pyc in pretty(self, obj)
    358                             if callable(meth):
    359                                 return meth(obj, self, cycle)
--> 360             return _default_pprint(obj, self, cycle)
    361         finally:
    362             self.end_group()

/home/vagrant/env/local/lib/python2.7/site-packages/IPython/lib/pretty.pyc in _default_pprint(obj, p, cycle)
    478     if getattr(klass, '__repr__', None) not in _baseclass_reprs:
    479         # A user-provided repr.
--> 480         p.text(repr(obj))
    481         return
    482     p.begin_group(1, '<')

/home/vagrant/env/local/lib/python2.7/site-packages/polymorphic/query.pyc in __repr__(self, *args, **kwargs)
    290             return  '[ ' + ',\n  '.join(result) + ' ]'
    291         else:
--> 292             return super(PolymorphicQuerySet, self).__repr__(*args, **kwargs)
    293 
    294     class _p_list_class(list):

/home/vagrant/env/local/lib/python2.7/site-packages/django/db/models/query.pyc in __repr__(self)
     75 
     76     def __repr__(self):
---> 77         data = list(self[:REPR_OUTPUT_SIZE + 1])
     78         if len(data) > REPR_OUTPUT_SIZE:
     79             data[-1] = "...(remaining elements truncated)..."

/home/vagrant/env/local/lib/python2.7/site-packages/django/db/models/query.pyc in __len__(self)
     90                 self._result_cache = list(self.iterator())
     91         elif self._iter:
---> 92             self._result_cache.extend(self._iter)
     93         if self._prefetch_related_lookups and not self._prefetch_done:
     94             self._prefetch_related_objects()

/home/vagrant/env/local/lib/python2.7/site-packages/polymorphic/query.pyc in iterator(self)
    277                     break
    278 
--> 279             real_results = self._get_real_instances(base_result_objects)
    280 
    281             for o in real_results:

/home/vagrant/env/local/lib/python2.7/site-packages/polymorphic/query.pyc in _get_real_instances(self, base_result_objects)
    173 
    174                 else:
--> 175                     real_concrete_class = base_object.get_real_instance_class()
    176                     real_concrete_class_id = base_object.get_real_concrete_instance_class_id()
    177 

/home/vagrant/env/local/lib/python2.7/site-packages/polymorphic/polymorphic_model.pyc in get_real_instance_class(self)
    102         # when the content type record still exists but no longer refers to an existing model.
    103         try:
--> 104             return ContentType.objects.get_for_id(self.polymorphic_ctype_id).model_class()
    105         except AttributeError:
    106             # Django <1.6 workaround

/home/vagrant/env/local/lib/python2.7/site-packages/django/contrib/contenttypes/models.pyc in get_for_id(self, id)
    104             # This could raise a DoesNotExist; that's correct behavior and will
    105             # make sure that only correct ctypes get stored in the cache dict.
--> 106             ct = self.get(pk=id)
    107             self._add_to_cache(self.db, ct)
    108         return ct

/home/vagrant/env/local/lib/python2.7/site-packages/django/db/models/manager.pyc in get(self, *args, **kwargs)
    141 
    142     def get(self, *args, **kwargs):
--> 143         return self.get_query_set().get(*args, **kwargs)
    144 
    145     def get_or_create(self, **kwargs):

/home/vagrant/env/local/lib/python2.7/site-packages/django/db/models/query.pyc in get(self, *args, **kwargs)
    387                 "%s matching query does not exist. "
    388                 "Lookup parameters were %s" %
--> 389                 (self.model._meta.object_name, kwargs))
    390         raise self.model.MultipleObjectsReturned(
    391             "get() returned more than one %s -- it returned %s! "

DoesNotExist: ContentType matching query does not exist. Lookup parameters were {'pk': None}

taxido avatar Jul 29 '13 13:07 taxido

It seems like you have a polymorphic_ctype column that contains NULL values. Did this happen after a migration to polymorphic?

p.s. please report new issues at https://github.com/chrisglass/django_polymorphic, see my note at #31

vdboor avatar Aug 16 '13 07:08 vdboor