2012-05-06 2 views
1

Я реализую django-haystack в первый раз и вам нужно выполнить геопространственный поиск. Можно ли получить доступ к входам пользователя из urls.py?django - доступ к переменной GET из 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 ('местоположение', USER_LOCATION, D (миль = 5))

где 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' в контроллер псевдонимов. –