DRF向可浏览api发送额外数据

2024-05-19 22:47:36 发布

您现在位置:Python中文网/ 问答频道 /正文

对不起,我的语言使用不好。你知道吗

我正在使用drf作为我的webapi。它有特殊的渲染器。我可以使用django视图,或者drf pure APIView。我可以使用TemplateHTMLRenderer这是很好的,但他们都使drf没有必要。因为我想使用drf可浏览的api特性。使用post,put,delete表单。在api中使用json和html,代码简洁明了。你知道吗

但问题是,我不能自定义可浏览的api,我不能发送额外的内容或上下文。例如,我正在为我的Post模型使用序列化程序,但是我还需要另一个查询序列化程序。它们实际上并不相关。你知道吗

说得太多了。我的问题是,我想用他的特性和更多的额外数据来定制可浏览的api。但我看不到任何文件。你知道吗

谢谢。你知道吗


Tags: django程序视图api语言序列化putpure
2条回答

这些方法发送带有内容的数据作为响应,内容是json数据。你知道吗

https://github.com/encode/django-rest-framework/blob/master/rest_framework/renderers.py#L686-L722

就像这里。我可以在我的应用程序中使用内容、视图或窗体api.html文件我想在这里添加更多数据。喜欢

'mydata': Posts.objects.all(),
'mydata2': Blogs.objects.all(),

在那之后,我想在我的生活中使用它们api.html文件(或在自定义模板中)。你知道吗

如果我正确理解了您的问题,您可以在序列化程序类中显式指定每个附加字段,如下所示

class SampleSerializer(serializers.ModelSerializer):
    field_1 = serializers.IntegerField(write_only=True)
    field_2 = serializers.CharField(write_only=True)

    class Meta:
        fields = '__all__'
        model = SampleModel

相关问题 更多 >