こんにちは、私は Django と Django-Rest-Framework の両方が初めてです。チュートリアルを完了しました。私が(学習演習として)やろうとしているのは、主キー以外のフィールドに基づいてオブジェクトを返すことです。
myserver:8000/videos
すべての動画のリストを返します。myserver:8000/videos/1
主キーが 1 のビデオを返します
私がやりたいことは次のとおりです。
myserver:8000/videos/:videoname
ビデオを返しますvideoname = videoname
私は次の動画モデルを持っています:
class Videos (models.Model):
videoID = models.IntegerField(blank=True, null=True)
videoName = models.CharField(max_length=20)
class Meta:
app_label="quickstart"
私のルーターは次のように構成されています。
video_detail = views.VideoDetailView.as_view({
'get':'list'
})
urlpatterns = patterns('',
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^videos/(?P<videoName>[^/]+)/$', video_detail)
)
そして、私の見解は次のように定義されています。
class VideoDetailView(viewsets.ModelViewSet):
serializer_class = VideosSerializer
def get_queryset(self):
videoName = self.kwargs.get(videoName, None)
queryset = super (VideoDetailView,self).get_queryset()
if videoName:
queryset = queryset.filter(videoName=videoName)
return queryset
API は実行されますが、ヒットするとmyserver:8000/videos/SecondVideo/
(「SecondVideo」はビデオの名前です)、404 エラーが発生します。
何か助けはありますか?