2012-05-06 8 views
1

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

私はをSQS = SearchQuerySet()を実行する必要があります干し草のマニュアルを参照して続き、

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'), 
) 

を使用して、基本的な検索を行うことができました。( '場所'、USER_LOCATION、D(MI = 5)dwithin )

ここで、user_locationはユーザー入力となり、GET変数に渡されますが、私はここにアクセスできますか?

ありがとうございます。

答えて

1

チェックHow to access HttpRequest from urls.py in Django

は、次に、あなたのコードは

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), 
) 

明示的に対応する検索ビューを呼び出すためのビューを書くことは通常はその優れたように見えます。

+6

'通常、対応する検索ビューを呼び出すためのビューを明示的に書く方が良い。 ' - はい、' urls.py'を擬似ビューコントローラに変換しないでください。 –