1

This is a bit strange as the error is not raising in Xapian.

I'm on django-haystack==1.2.7 and Whoosh==2.4.1. Its able to build indexes but when I run a search, its saying

AttributeError at /search
'NoneType' object has no attribute 'concrete_model'

The exact traceback is here

Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "D:\Code\projects\MYPROJ\deploy\..\myapps\pages\views.py" in search
  46.     return SearchView().__call__(request)
File "C:\Python27\lib\site-packages\haystack\views.py" in __call__
  50.         return self.create_response()
File "C:\Python27\lib\site-packages\haystack\views.py" in create_response
  145.         return render_to_response(self.template, context, context_instance=self.context_class(self.request))
File "C:\Python27\lib\site-packages\django\shortcuts\__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "C:\Python27\lib\site-packages\django\template\loader.py" in render_to_string
  176.         return t.render(context_instance)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  140.             return self._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  134.         return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  123.         return compiled_parent._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  134.         return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  123.         return compiled_parent._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  134.         return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  62.             result = block.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  62.             result = block.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  62.             result = block.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  281.                 return nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  476.         output = self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  155.         return self.render_template(self.template, context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render_template
  137.         output = template.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  140.             return self._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  134.         return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  185.                         nodelist.append(node.render(context))
File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  281.                 return nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  281.                 return nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  155.         return self.render_template(self.template, context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render_template
  137.         output = template.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  140.             return self._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  134.         return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  281.                 return nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py" in render
  823.                 bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node
  74.             return node.render(context)
File "C:\Python27\lib\site-packages\django\contrib\comments\templatetags\comments.py" in render
  67.         qs = self.get_query_set(context)
File "C:\Python27\lib\site-packages\django\contrib\comments\templatetags\comments.py" in get_query_set
  72.         ctype, object_pk = self.get_target_ctype_pk(context)
File "C:\Python27\lib\site-packages\django\contrib\comments\templatetags\comments.py" in get_target_ctype_pk
  100.             return ContentType.objects.get_for_model(obj), obj.pk
File "C:\Python27\lib\site-packages\django\contrib\contenttypes\models.py" in get_for_model
  32.         opts = self._get_opts(model)
File "C:\Python27\lib\site-packages\django\contrib\contenttypes\models.py" in _get_opts
  20.         return model._meta.concrete_model._meta

Exception Type: AttributeError at /search
Exception Value: 'NoneType' object has no attribute 'concrete_model'

I have been using django.contrib.comments (since the django framework version is 1.4.2), the exception is raised at

{% get_comment_count for entry as comment_count %}

That's a bit strange as its not a part of search!

The search view endpoint returns

SearchView().__call__(request)

I'm unable to figure out at least what's wrong, whats going on. Anything new lead would be quite helpful

Iamcool
  • 1,387
  • 2
  • 12
  • 24
  • I've passed by this issue, if you try to serialize the search results you will get the same error. The reason is that the haystack search models don't have a concrete model, this is causing an exception. I already pointed this out in haystack github issue tracker. It should have been done exactly like Django does it but its not. I'll update you if I found a solution. – bhappy May 29 '14 at 12:57

0 Answers0