2017-09-22 10 views
0

新しいAPIアプリケーションを作成して、WebアプリケーションのすべてのAPIリクエストに対応しました。だから私はまず何かを単純にして、DataFrameオブジェクトをJSONの形で返したいと思います。私はDjango Rest Framework Libraryも使用しています。Django Restful API App

マイurls.py

from django.conf.urls import url, include 
from rest_framework import routers 
from api import views 

router = routers.SimpleRouter() 
router.register(r'test', views.UserViewSet) 

urlpatterns = [ 
    url(r'^', include(router.urls)) 
] 

私のviews.py:

class UserViewSet(APIView): 
    renderer_classes = (JSONRenderer,) 

    def get(self): 
     queryset = NAV.objects.filter(fund__account_class=0, transmission=3).values('valuation_period_end_date').annotate(
     total_nav=Sum(F('outstanding_shares_par') * F('nav'))).order_by('valuation_period_end_date') 
     df = read_frame(queryset, coerce_float=True) 
     df.loc[:, 'valuation_period_end_date'] = pd.to_datetime(df.valuation_period_end_date) 
     df.loc[:, 'timestamp'] = df.valuation_period_end_date.astype(np.int64) // 10 ** 6 
     df.loc[:, 'total_nav'] = df.total_nav 
     return JsonResponse(df) 

しかし、私はRESTfulなAPIフレームワークをジャンゴに新しいですし、私があればと思いまして、エラーAssertionError: BASE_NAME argument not specified, and could not automatically determine the name from the viewset, as it does not have a .queryset attribute.を取得この権利をしていますか?

答えて

0

ルーターにビューを登録するときに、ベース名を指定する必要があるようです。このここを参照してください詳細について

router.register(r'test', views.UserViewSet, 'User') 

:あなたが照会されているモデルの名前のようなものに変更'User'(これを試してみてください http://www.django-rest-framework.org/api-guide/routers/