私はdjangoRestFramework 3.3.2を私のdjangoアプリケーションのルーティングに使用しています。私は6つのアプリケーションと1つのメインプロジェクトのアプリケーションのための6つの異なるフォルダがあります。私はメインのURLファイルに6つのアプリのURLをすべて含んでいます。以下は私のメインURLファイルです。Django Restフレームワークを非表示にするルータApi View Page
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^vpc/', include('vpc.urls')),
url(r'^dss/', include('dss.urls')),
url(r'^rds/', include('rds.urls')),
url(r'^compute/', include('compute.urls')),
url(r'^iam/', include('iam.urls')),
]
これは私のアプリケーションのURLファイルです。
from django.conf.urls import url
from rest_framework import routers
import views.instance_views as instance
import views.snapshot_views as snapshot
router = routers.SimpleRouter()
router.register(r'instance', instance.IntanceViewSet, base_name='instance')
router.register(r'snapshot', snapshot.SnapshotViewSet, base_name='snapshot')
urlpatterns = []
urlpatterns += router.urls
私の問題は、ブラウザでURLを開くと、URLの階層全体が表示されます。これは必須ではない。
これらのレンダリングビューを非表示にするにはどうすればよいですか。私は私が使用してビューを隠すことができた余分な情報
を表示したくない:REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
)
}
しかし、私はまだ1つのアプリの下にすべてのURLを取得しています。
{"instance":"http://127.0.0.1:8000/compute/instance/","keypair":"http://127.0.0.1:8000/compute/keypair/","volume":"http://127.0.0.1:8000/compute/volume/","image":"http://127.0.0.1:8000/compute/image/","snapshot":"http://127.0.0.1:8000/compute/snapshot/"}
設定でこれが何も表示されませんでしたが、たとえば '401 'を返すために' compute/$ '($に注意してください)というURLを持つビューを追加すると、ルータはそのままです。 –