1

初めて django-haystack を実装していて、地理空間検索を行う必要があります。urls.py からユーザー入力にアクセスすることは可能ですか?

私は干し草の山のドキュメントに従い、次を使用して基本的な検索を行うことができました

from django.conf.urls.defaults import *
from haystack.forms import ModelSearchForm, HighlightedSearchForm
from haystack.query import SearchQuerySet
from haystack.views import SearchView
from haystack.views import SearchView, search_view_factory

**sqs = SearchQuerySet().all()**

urlpatterns = patterns('haystack.views',
url(r'^$', search_view_factory(
    view_class=SearchView,
    template='search/search.html',
    searchqueryset=sqs,
    form_class=HighlightedSearchForm
    ), name='haystack_search'),
)

sqs = SearchQuerySet().dwithin('location', user_location, D(mi=5))を実行する必要があります

user_location はユーザー入力であり、GET 変数を介して渡されますが、ここにアクセスする方法はありますか?

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

4

1 に答える 1

1

Djangoのurls.pyからHttpRequestにアクセスする方法を確認してください

次に、コードは次のようになります

urlpatterns = patterns('haystack.views',
url(r'^$', lambda request, *args, **kwargs: search_view_factory(
    view_class=SearchView,
    template='search/search.html',
    searchqueryset=SearchQuerySet().dwithin('location', request.GET.get('user_location'), D(mi=5)),
    form_class=HighlightedSearchForm
    ), name='haystack_search')(request, *args, **kwargs),
)

通常は、対応する検索ビューを呼び出すビューを明示的に作成することをお勧めします。

于 2012-05-06T08:34:43.680 に答える