2017-08-24 6 views
0

Django Rest Frameworkを使用して非モデルAPIエンドポイントを作成していますが、設定に問題があります。以下は私のコードです。非モデルエンドポイントのDjango RESTフレームワークでAPIViewでURLが解決されない

views.py

from rest_framework import views, viewsets 
from rest_framework.response import Response 

from myproject.apps.policies.models import Customer 
from .serializers import CustomerSerializer 


class CustomerViewSet(viewsets.ReadOnlyModelViewSet): 
    queryset = Customer.objects.all() 
    serializer_class = CustomerSerializer 


class CalculateQuoteView(views.APIView): 

    def get(self, request, *args, **kwargs): 
     print('Just a random test.') 
     return Response({"success": True, "content": "Hello World!"}) 

マイurl.pyファイル:テストのためにカールを使用して

from django.conf.urls import include, url 
from .policies import views as policies_views 
from rest_framework.routers import DefaultRouter 

router = DefaultRouter() 
router.register('policies', policies_views.CustomerViewSet) 
#urlpatterns = router.urls 

urlpatterns = [ 
    url(r'^quote/', policies_views.CalculateQuoteView.as_view()), 
    url(r'^', include(router.urls)), 
] 

curl -X GET http://localhost:8000/api/v1/policies/quote/ -H 'Authorization: Token 8636c43eb7a90randomtokenhere5c76555e93d3'

を私は次のような出力が得られます。

{"detail":"Not found."}

基本的には、最後に私がquote APIエンドポイントに詳細を渡すと、いくつかの応答データを取得する必要があります。私は行方不明のものがありますか?

+0

をステータスコードは何ですか?これは 'print('ただランダムなテスト。 ') 'を実行しても要求している間に実行されますか? –

+0

@ArpitSolanki:いいえ。私は以下を取得しています: 'Not Found:/ api/v1/policies/quote /'。 Ofcourse。 – Frankline

答えて

2

あなたが照会する必要がありますよう

curl -X GET http://localhost:8000/api/v1/quote/ 

やURLを変更:

url(r'^policies/quote/', policies_views.CalculateQuoteView.as_view()), 
+0

。これは私のために働いています。ありがとう。 – Frankline

関連する問題