我有以下使用 Django Rest 框架 (DRF) 构建的基于通用类的 View
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
此 View 允许我通过指定 format=json 或 html 从同一端点获取 JSON 数据或 HTML 表单。
我想以编程方式调用该 View 以从另一个 View 中获取呈现的 HTML 表单,以便将此表单包含在另一个包含更多内容的页面中。
最佳答案
我在文档中找到了解决方案... https://docs.djangoproject.com/en/4.1/ref/class-based-views/mixins/
提示来自他们的示例:
class AuthorDetail(View):
def get(self, request, *args, **kwargs):
view = AuthorDisplay.as_view()
return view(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
view = AuthorInterest.as_view()
return view(request, *args, **kwargs)
关于django - 如何以编程方式在另一个 View 中调用 Django Rest Framework View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26790981/