このコードを haystack から汎用ビュー関数を呼び出す urls.py に変換しようとしていますが、「関数」オブジェクトに属性 'status_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'),
)
私の新しい urls.py は、views.py で search() を呼び出すだけです。
views.py には、
def search(request):
sqs = SearchQuerySet().all()
return search_view_factory(
view_class=SearchView,
template='search/search.html',
searchqueryset=sqs,
form_class=HighlightedSearchForm
)
ユーザーの入力とステータスに応じて、sqsをかなりいじりたいので、これを行っています。
上記のsearch_view_factoryはSearchViewクラスを返すべきではありません.render_to_responseを返すcreate_response()を自動的に呼び出すようです。create_response() を手動で呼び出してみましたが、それもうまくいきませんでした。
django-haystack コードはここにあります。
ありがとうございました。