0
私はDjango RESTが新しく、その背後にある概念を理解しようとしています。
私は、次のAPIDjango RESTルータ
serializers.py
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = ('classroom', 'first_name', 'last_name', 'gender', 'birthday')
class ClassroomSerializer(serializers.ModelSerializer):
students = StudentSerializer(many=True)
class Meta:
model = Classroom
depth = 1
fields = ('school', 'academic_year', 'classroom', 'floor', 'students')
views.py
def index(request):
return render_to_response('school_app/base.html', RequestContext(request))
class StudentViewSet(viewsets.ModelViewSet):
queryset = Student.objects.all()
serializer_class = StudentSerializer
class ClassroomViewSet(viewsets.ModelViewSet):
queryset = Classroom.objects.all()
serializer_class = ClassroomSerializer
urls.py
router = routers.SimpleRouter()
router.register(r'classrooms', ClassroomViewSet)
router.register(r'students', StudentViewSet)
urlpatterns = router.urls
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^classrooms/$', school_app.views.ClassroomViewSet.as_view({'get': 'list'}), name='classroom-list'),
url(r'^students/$', school_app.views.StudentViewSet.as_view({'get': 'list'}), name='student-list'),
url(r'^students/(?P<pk>[^/.]+)/$', school_app.views.StudentViewSet.as_view({'get': 'list'}), name='student-list'),
url(r'^', 'school_app.views.index', name='index-page'),
#url(r'^', include(router.urls)),
]
そして、私は一つのことを理解することはできませんセットアップを持っています。私はこの
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^', include(router.urls)),
]
ようurls.py書く場合のように、クリックすると「/教室/」または「/学生/」に行く、とするとき、私は「、/生徒を二つのリスト(学生や教室を)見ることができます/ 1 "、私はその特定の学生のインスタンスを取得 - しかし、"インデックス "ビューは動作しません。
urls.pyがこの
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^classrooms/$', school_app.views.ClassroomViewSet.as_view({'get': 'list'}), name='classroom-list'),
url(r'^students/$', school_app.views.StudentViewSet.as_view({'get': 'list'}), name='student-list'),
url(r'^students/(?P<pk>[^/.]+)/$', school_app.views.StudentViewSet.as_view({'get': 'list'}), name='student-list'),
url(r'^', 'school_app.views.index', name='index-page'),
]
のように書かれている場合は、「/教室/」または「/生徒」に行くとき、私はリストを取得します。私も "インデックス"ビューを取得している、私は2つのリストの特定のインスタンスを取得していないが、代わりに私は "インデックス"ビューを取得します。
なぜですか?
Angular JSアプリで使用しても大丈夫ですか? –
はい、問題ありません。この部分はAngularJSで使用されていることとは関係ありません。正しいURL-> Viewマッピングを作成することです。私は自分のDRFサービスを使ってAngularJSフロントエンドクライアントにサービスを提供しています。 –