0

我想通過Django URL安全地訪問ElasticSearch。從這個請求中,我將查找用戶的令牌來獲得他們的主鍵。然後我只會顯示符合的ES結果。查看以使用外部URL

現在,我只想連接到我的ElasticSearch URL。它會像「代理」一樣工作。

無論如何,下面的回傳底部回溯。我如何正確設置它?我需要一個串行器

views.py

from django.http import HttpResponseRedirect 

class ElasticViewSet(viewsets.ModelViewSet): 
    def my_view(request): 
     if True: 
      return HttpResponseRedirect('http://localhost:9200/_seach') 

urls.py

router.register(r'elastic', ElasticViewSet, base_name='Elastic') 

回溯

Traceback: 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    149.      response = self.process_exception_by_middleware(e, request) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 
    58.   return view_func(*args, **kwargs) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/rest_framework/viewsets.py" in view 
    83.    return self.dispatch(request, *args, **kwargs) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/rest_framework/views.py" in dispatch 
    477.    response = self.handle_exception(exc) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/rest_framework/views.py" in handle_exception 
    437.    self.raise_uncaught_exception(exc) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/rest_framework/views.py" in dispatch 
    474.    response = handler(request, *args, **kwargs) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/rest_framework/mixins.py" in list 
    40.   queryset = self.filter_queryset(self.get_queryset()) 

File "/Users/mac1/Dev/A51/Backend/NewDJ/venv/lib/python2.7/site-packages/rest_framework/generics.py" in get_queryset 
    67.    % self.__class__.__name__ 

Exception Type: AssertionError at /2042watkin/elastic/ 
Exception Value: 'ElasticViewSet' should either include a `queryset` attribute, or override the `get_queryset()` method. 
+1

答案在追溯。 –

+0

您從ModelViewSet繼承,它必須有一個查詢集,它指向代碼中的某個Model –

+0

是的,但我不想在我的代碼中使用模型,我只是想通過URL重定向 – Ycon

回答

0

第一件事,第一,你不想ModelViewSet作爲有沒有Model。只要去經常ViewSet

其次,請花點時間思考你想做什麼以及你想做什麼。 my_view不是ViewSet的正常操作。返回HttpResponseRedirect不作爲代理。

+0

好吧,我創建了另一個更具體地試圖訪問API的問題。 http://stackoverflow.com/questions/42827690/viewset-to-access-external-api-elastic-search – Ycon