アップロードされたファイルをクライアントに返そうとしています。私はちょうど "ファイル" ルートにしようとしていたDjango Rest Framework:アップロード後にファイルをクライアントに返す
models.py
file = models.FileField(_('file'), db_index=True, null=True, blank=True, upload_to='files/')
ビューここ
class ContentInfoViewSet(viewsets.ModelViewSet):
queryset = ContentInfo.objects.all()
serializer_class = ContentInfoSerializer
http_method_names = ['get']
@detail_route(methods=['get']) //this is just for testing
def files(self, request, pk=None):
return Response(pk, status=status.HTTP_200_OK)
。
私が試してみると、は "content-info"と表示されます。それはうまく動作します:
[
{
"url": "http://127.0.0.1:8000/users/content-info/1/",
"id": 1,
"date": "2017-01-27T16:21:41.976289Z",
"title": "Hey Hey",
"image_url": "",
"content_url": "",
"file": null
},
{
"url": "http://127.0.0.1:8000/users/content-info/3/",
"id": 3,
"date": "2017-03-21T12:09:32.984119Z",
"title": "NWE",
"image_url": "",
"content_url": "",
"file": "http://127.0.0.1:8000/users/content-info/files/BIAM-51.pdf"
}
]
しかし、このURLは機能しません。たとえ私がを取得したとしても、承認のあるが得られます。私は何が間違っているのか分からない。 ページが見つかりません。 pdf
あなたがリンクを開いたとき、それはPDFを示しています。それはurls.py(私はhttp://127.0.0.1:8000/users/content-info/files/BIAM-51.pdfを意味する)
このソリューションは、素晴らしいことだではないので、それは、ロジックです。私はこのリンク "http://127.0.0.1:8000/users/content-info/files/BIAM-51.pdf"
あなたはDjangoの残りのフレームワークの権利を使用していますか? 多分この記事(http://stackoverflow.com/questions/2294507/how-to-return-static-files-passing-through-a-view-in-django)は役に立ちます – code22
ええ、申し訳ありませんが、私はそれを目標にするのを忘れた。 –
それを行うより良い方法はありますか? (私がfileFieldを使用しない場合でも)私はブラウザにファイルを表示したいだけです。要点は、HTML、pdf、MP3のいずれかを表示することができないということです。コンテンツタイプでは、タイプを指定する必要があります –