3

このコードを 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 コードはここにあります。

ありがとうございました。

4

1 に答える 1