I'm trying to convert this code from haystack into urls.py calling a generic view function, but I'm getting 'function' object has no attribute 'status_code'. I think it's because it's not returning a response object.
haystack code:
from django.conf.urls.defaults import *
from haystack.forms import ModelSearchForm, HighlightedSearchForm
from haystack.query import SearchQuerySet
from haystack.views import SearchView
sqs = SearchQuerySet().filter(author='john')
# With threading...
from haystack.views import SearchView, search_view_factory
urlpatterns = patterns('haystack.views',
url(r'^$', search_view_factory(
view_class=SearchView,
template='search/search.html',
searchqueryset=sqs,
form_class=HighlightedSearchForm
), name='haystack_search'),
)
My new urls.py just calls search() in views.py.
In views.py, I have
def search(request):
sqs = SearchQuerySet().all()
return search_view_factory(
view_class=SearchView,
template='search/search.html',
searchqueryset=sqs,
form_class=HighlightedSearchForm
)
I'm doing this because I want to mess around with sqs quite a bit depending on user inputs and status.
Shouldn't search_view_factory above return a SearchView class, seems like it calls create_response() automatically which returns render_to_response. Tried calling create_response() manually, but that wasn't working either.
django-haystack code can be found here.
Thank you.
The search_view_factory returns a view function instead of an HttpResponse, you need to invoke it properly.
def search(request):
sqs = SearchQuerySet().all()
view = search_view_factory(
view_class=SearchView,
template='search/search.html',
searchqueryset=sqs,
form_class=HighlightedSearchForm
)
return view(request)
Sorry for misleading in your previous question, I've fixed it also.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With