我有以下使用Django Rest框架(DRF)构建的基于通用类的视图
class ExampleDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Example.objects.all()
serializer_class = ExampleSerializer
renderer_classes = (JSONRenderer, TemplateHTMLRenderer)
def get(self, request, *args, **kwargs):
response = self.retrieve(request, *args, **kwargs)
if request.accepted_renderer.format == 'html':
form = ExampleForm(data=response.data)
return Response({'data': response.data, 'form': form}, template_name='example.html')
return response
通过指定format = json或html,此视图允许我从同一端点获取JSON数据或HTML表单。
我想以编程方式调用该视图以从另一个视图中获取呈现的HTML表单,以便将该表单包含在将包含更多内容的另一个页面中。
html_from_view = ExampleDetail.as_view({'get': 'list'})(request).content
要么
html_from_view = ExampleDetail.as_view({'get': 'retrieve'})(request, pk=my_id).render().content
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句