ViewSetは必要なものすべてを行いますが、テンプレート(TemplateHTMLRenderer)に余分なコンテキストを渡したい場合は、 (list()、create()など)を返すDjango RESTフレームワークビューセットにコンテキストを追加する方法
私が見ることができる唯一の方法は、ビューセットで完全に再定義することですが、簡単な方法があるようです今私のコードは次のように見ているが、私はdifferen追加したいされます
class LanguageViewSet(viewsets.ModelViewSet):
"""Viewset for Language objects, use the proper HTTP methods to modify them"""
# TODO: add permissions for this view?
queryset = Language.objects.all()
serializer_class = LanguageSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('name', 'active')
...メソッドのセット全体を再定義しなくても、テンプレートにコンテキストのビットを追加私はこのような小さな変化のためにメソッド全体を再定義することを避けようとしています。私は原則的に「pleasedontbelong」に反対するが、このように...
class LanguageViewSet(viewsets.ModelViewSet):
"""Viewset for Language objects, use the proper HTTP methods to modify them"""
# TODO: add permissions for this view?
queryset = Language.objects.all()
serializer_class = LanguageSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('name', 'active')
def list(self, **kwargs):
"""Redefinition of list"""
..blah blah everything that list does
return Response({"foo": "bar"}, template_name="index.html")
あなたはそれが間違っています、DRF APIにはテンプレートはありません。コンテキストがシリアライザに渡され、シリアライザのデータがレンダリングに送られ、リクエストの「Accept」ヘッダがjson、csv、さらにはHTML – pleasedontbelong
のようにデータをレンダリングする方法を定義するようになります。データを取り込んでDRFを行う方法を処理する必要があります。私は、ビューとフォームなどの別のアプリケーションを使用して、達成したいデータをAPIに送信する必要がありますか? – deltaskelta
チュートリアル全体に従うhttp://www.django-rest-framework.org/tutorial/quickstart/ – pleasedontbelong