私は Django Rest Framework を持っており、 HTML を表示ModelViewSet
するために使用しようとしています。チュートリアルTemplateHTMLRenderer
に従ってください:
from rest_framework import permissions, renderers, viewsets
from rest_framework.decorators import link
from . import models, serializers
from .permissions import IsOwnerOrReadOnly
class SnippetViewSet(viewsets.ModelViewSet):
template_name = 'snippet-list.html'
queryset = models.Snippet.objects.all()
serializer_class = serializers.SnippetSerializer
renderer_classes = (renderers.TemplateHTMLRenderer,)
permission_classes = (permissions.IsAuthenticatedOrReadOnly,
IsOwnerOrReadOnly,)
@link(renderer_classes=[renderers.StaticHTMLRenderer])
def highlight(self, request, *args, **kwargs):
snippet = self.get_object()
return Response(snippet.highlighted)
def pre_save(self, obj):
obj.owner = self.request.user
にキーを追加するdef resolve_context()
と、テンプレートに渡されたモデル オブジェクトにアクセスできますRequestContext
。キーを追加しないdata
と、スニペットにアクセスする方法がわかりません。
def resolve_context(self, data, request, response):
if response.exception:
data['status_code'] = response.status_code
#return RequestContext(request, data) # original source on github
return RequestContext(request, {'data': data}) # if I add a key I can access it
だから私は何か簡単なものを見逃しているか、これがどのように動作することを期待しているかは、著者が意図したものではありませんか?