Python 将django-haystack与django rest框架集成在一起
我正在尝试设置solr搜索引擎和django drf。 我正在使用drf_haystack来实现这个目的。 我正在使用solr-tomcat6。但是我被卡住了,不知道哪里出了问题。每当我通过get调用执行搜索时,django rest框架页面都没有响应。 我已经完成了本教程中提到的solr的所有设置- 在从中获取模式后,我还将模式放在conf文件夹中Python 将django-haystack与django rest框架集成在一起,python,django,solr,django-rest-framework,django-haystack,Python,Django,Solr,Django Rest Framework,Django Haystack,我正在尝试设置solr搜索引擎和django drf。 我正在使用drf_haystack来实现这个目的。 我正在使用solr-tomcat6。但是我被卡住了,不知道哪里出了问题。每当我通过get调用执行搜索时,django rest框架页面都没有响应。 我已经完成了本教程中提到的solr的所有设置- 在从中获取模式后,我还将模式放在conf文件夹中 python manage.py build_solr_schema 至于tomacat6,默认端口是8080 my settings.py-
python manage.py build_solr_schema
至于tomacat6,默认端口是8080 my settings.py-
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://localhost:8080/solr'
},
}
My models.py很简单,标题是主键,测试是模型-
class Test(models.Model):
title = models.TextField(blank=True, primary_key=True)
url = models.TextField(blank=True, null=True)
price = models.TextField(blank=True, null=True)
brief = models.TextField(blank=True, null=True)
def __unicode__(self):
return self.title
class Meta:
db_table = 'test'
我不熟悉使用solr。我的index.py中可能有错误,我在这里展示了-
class TestIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
url = indexes.CharField(model_attr='url')
price = indexes.CharField(model_attr='price')
def get_model(self):
return Test
def index_queryset(self, using=None):
return self.get_model().objects.all()
我已经在视图中包含了序列化程序-
class TestSerializer(HaystackSerializer):
class Meta:
index_classes = [TestIndex]
fields = [
"title","url","price","brief"
]
class SearchView(HaystackViewSet):
index_models = [Test]
serializer_class = TestSerializer
最后,我的url.py如下所示:
router = routers.DefaultRouter()
router.register("item/search", SearchView, base_name="item-search")
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r"api/", include(router.urls))
]
我通过在url中输入以下内容来执行搜索:
这是一个空字典。请帮我解决我的问题,也许有一个愚蠢的错误。我得到了解决方案。我用的是django 1.9,当我降级到django 1.8时,它工作了。我得到了解决方案。我用的是django 1.9,当我降级到django 1.8时,它工作了。