【发布时间】:2012-05-15 05:00:42
【问题描述】:
我正在尝试将此代码从 haystack 转换为调用通用视图函数的 urls.py,但我得到 'function' 对象没有属性 '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 类,似乎它会自动调用 create_response() 并返回 render_to_response。尝试手动调用 create_response(),但这也不起作用。
django-haystack code 可以在这里找到。
谢谢。
【问题讨论】:
标签: django django-views django-urls django-haystack