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エンドポイントに詳細を渡すと、いくつかの応答データを取得する必要があります。私は行方不明のものがありますか?
をステータスコードは何ですか?これは 'print('ただランダムなテスト。 ') 'を実行しても要求している間に実行されますか? –
@ArpitSolanki:いいえ。私は以下を取得しています: 'Not Found:/ api/v1/policies/quote /'。 Ofcourse。 – Frankline